home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 11 / Cream of the Crop 11-2.iso / bbs / ls1_2.zip / LS.DOC < prev    next >
Text File  |  1996-01-03  |  114KB  |  2,320 lines

  1.  
  2.       ─   ─  ─ ──═───═──═─═══════════════════════════─═──═───═── ─  ─   ─
  3.                   ─ ─╦    ╦     ╦    ╦  ╔═╗            ─ ─║
  4.                  ─ ──║          ║    ║  ║            ── ──║
  5.                    ──║    ║ ╔═╦ ╠═╗ ═╬═ ╚═╗ ╔═╗ ╦═╗ ╦═╗ ╔═╣
  6.                  ── ─║    ║ ║ ║ ║ ║  ║    ║ ║ ║ ╠═╝ ╠═╝ ║ ║
  7.                   ─ ─╚══╝ ╩ ╚═╣ ╩ ╩  ╩  ╚═╝ ╠═╝ ╚═╝ ╚═╝ ╚═╩
  8.                            ─ ─║          ─ ─║
  9.                         ─ ──╚═╝         ─ ──╚
  10.  
  11.                                   ┬─┐ ┬─┐ ┌─┐
  12.                                   ├─│ ├─│ └─┐
  13.                                   ┴─┘ ┴─┘ └─┘
  14.               ─   ─  ─ ──═───═──═─═══════════─═──═───═── ─  ─   ─
  15.                           The future of BBS software
  16.  
  17.                                  Version  1.2
  18.                                   
  19.  
  20.      Copyright (C) 1995 by RidgeLine Engineering.    All Rights Reserved.
  21.   _________________________________________________________________________
  22.                                   [Contents]
  23.  
  24.   Introduction
  25.   Part 1 - Getting Started
  26.          Setting up LightSpeed [See Readme.Doc]
  27.     1.1  Modifying the questionares
  28.     1.2  Modifying the menu screens
  29.     1.3  Modifying the menu system
  30.   Part 2 - The Mail System
  31.     2.1  What's so special
  32.     2.2  Simple tricks
  33.     2.3  The details
  34.   Part 3 - The File System
  35.   Part 4 - Installing doors
  36.     4.1  LightSpeed Companions
  37.     4.2  Other doors
  38.   Part 5 - Keys & Local commands
  39.   Part 6 - Glossary of Terms
  40.   Part 7 - Troubleshooting
  41.   Part 8 - Pricing and upgrade policy
  42.     8.1  Upgrades
  43.     8.2  Contacting us
  44.     8.3  What you're buying
  45.   Appendix A - Known bugs
  46.   Appendix B - Why?
  47.   Credits
  48.   Legal Notice
  49.     Copyright
  50.     Source Code
  51.  
  52. ------------------------------------------------
  53.  
  54.                                [Introduction]
  55.  
  56.   Thank you for trying this product.  We hope you'll find it to be the best
  57. system available.  This is still an early version, and probably has many
  58. bugs and faults in it still.  To order your copy of LightSpeed, print out 
  59. and mail in REGISTER.FRM.  For more information or assistance, contact our
  60. BBS system or send us mail via internet (see: Part 8.2 - Contacting
  61. us)  You'll find the latest pricing and information on our BBS.  And feel
  62. free to test the system to see if you like it from a user's point of view.
  63. Also, if you have any questions, feel free to write a comment to the sysop
  64. (Terror) and he'll try his best to answer any questions you might have.  He
  65. is the lead programmer for LightSpeed and our other products.
  66.  
  67.   What is LightSpeed?  LightSpeed is a full-featured BBS System, a program
  68. that can run on a single (or networked, although this feature is probably
  69. not functional yet) computer(s) and answer phone calls from modems.  
  70. LightSpeed can handle incoming calls from thousands or even hundreds of 
  71. thousands of users.  It provides the foundation for you to build a BBS 
  72. system to host in any number of activities and computer services.
  73.  
  74.   Now a brief look at the features in the full system of LightSpeed:
  75.  
  76.     -= Complete DOS-Based system capable of operating up to 999 lines 
  77.         [Maximum nodes supported varies between editions, trial edition
  78.          only supports one line and one free local line]
  79.     -= Free "local node" allowing the local sysop access to the BBS system.
  80.     -= The most complete message system available.  Featuring "auto-deletion"
  81.         which keeps even the most busy system's mail base filled only with
  82.         the messages you need.  And excellent methods for turning any BBS
  83.         into an interesting and active message system.
  84.     -= The most configurable system available.  Up to 1,000 message, file
  85.         areas, and security classes.  And a totally flexible menuing system.
  86.         Keep all your BBS commands from one main menu, or any number of
  87.         sub-menus, totally up to you.
  88.     -= Fast: Capable of running multiple lines off a single computer.
  89.         [Requires a multi-tasker such as DesqView or Windows, or a network]
  90.     -= Powerful information system: Completely configurable questionares
  91.         allow you to choose the information you ask for, and manage the
  92.         information however you want.
  93.     -= Multiple operation modes: Use time limits, security classes, or
  94.         credits to keep track of your user's system usage.  
  95.     -= Shut off selected parts of your system after a set amount of time,
  96.         for example: limit selected user's access to download capability.
  97.     -= Powerful door support (Doors are "add-ons" usually produced by
  98.         sources other than our company.)  Doors made specifically for or
  99.         with help from LightSpeed have an extended link with the system that 
  100.         allows them to act just like they are a part of LightSpeed itself.
  101.         [Doors are not available in the trial edition]
  102.     -= Enjoyable teleconference that lets users talk with other users,
  103.         the main attraction of many BBS systems.  Features full action 
  104.         commands, generic actions, whisper & page commands, and more!  
  105.     -= Free accessories: LsVote, LsWall, LsChat, LsPlanets, and LsVerify 
  106.         doors provide much entertainment that will make your BBS a hit 
  107.         instantly.  As well as the "Calls" utility program.  [Not included
  108.         in the trial edition]
  109.     -= Cheap: The lowest priced BBS system available in today's market.
  110.         Currently starting at $ 40 for a single node (with free local node).
  111.     -= Chat modes: In addition to the nice teleconference, a simple but
  112.         professional sysop chat mode is provided to allow the system
  113.         operator (sysop) to talk with the current user.
  114.     -= Page system: Users can page each other from other parts of the
  115.         system, outside of teleconference.  You can even communicate with
  116.         people using doors, in some cases.
  117.     -= Powerful terminal program: (Not available yet, no garuntee it ever 
  118.         will be.)  LightSpeed will have a companion terminal named LightTerm
  119.         or LTerm for short.  Users operating from this terminal program will
  120.         have faster ANSI, "terminal module" support, and 320x200x256 color
  121.         graphics in place of ANSI (if your LightSpeed BBS is setup to offer
  122.         it) and much more.  LTerm will be a shareware program.
  123.     -= Full RIP and ANSI support: RIP stands for [R]emote [I]maging
  124.         [P]rotocal, and provides a means of operating with the BBS in
  125.         a graphical environment.  ANSI is the standard which allows for
  126.         color when operating with any BBS.
  127.     -= Baud rate adjustment: LightSpeed can treat users with different
  128.         baud rates differently, as you define.  For example, users at
  129.         14400 (14.4k) baud can see a brilliant animation, however users
  130.         at 2400 baud would be bogged down by an animation's transfer time,
  131.         so LightSpeed can send 2400 baud users a still-screen instead.
  132.     -= User and security control: Along with the flexible menuing system
  133.         comes the ability to lock selected users and security classes
  134.         out of any command you choose.  Or, allow only selected users into 
  135.         a more private command.  Password protect any commands you wish.
  136.     -= Built-in registery of users: Allows users to learn more about other
  137.         users.  Gives information such as a person's hobbies and interests.
  138.     -= File ratios: Prevent users from downloading too much by forcing them 
  139.         to upload a certain amount for what they want to download.  You can 
  140.         use bytes or files for this ratio (or both, or neither) and you can 
  141.         vary it by-security (for example, paid users may be made exempt from 
  142.         the ratio).  
  143.     -= Built-in Cd-Rom support: Easily add cd-roms to your BBS system,
  144.         allowing you to add thousands of files to the system quickly and
  145.         relatively cheaply.  LightSpeed has excellent catagorizing 
  146.         capabilities, so that even a system with 50+ Cd's can let the user
  147.         find what they want quickly & easily.
  148.     -= Multiple file/mail systems: Divide your file & mail areas up as many
  149.         times as you like.  For example, let users choose from Windows or
  150.         Dos files, and then choose from Games, Utilities, or Image files,
  151.         and finally let them choose from those file areas.  Divide them up
  152.         once or a thousand times!
  153.     -= Full Door.Sys (52-line) and InfoLink.Dat support for doors.
  154.         Extremely easy to use door system, and very fast.
  155.         [Not available in trial edition] 
  156.     -= Credit, time/day, file KB-Ratio, file count-ratio, KB/day ratio,
  157.         and count/day ratio, use any of them, or none at all.  Giving you
  158.         extensive control over your user's activities, based on their
  159.         security class.  
  160.     -= Comment to the Sysop menu: Expandable, predefine comments to any
  161.         user on your system.  This can be very useful on larger systems,
  162.         for example you might want to allow users to comment to the main
  163.         sysop, or to a technical support staff.  Create "mail-boxes" for
  164.         any users.
  165.     -= Adjustable behavior: LightSpeed can treat different terminals,
  166.         nodes, users, security classes, and baud rates in different ways,
  167.         as you define.  LightSpeed can even act differently at random!
  168.         You could set your BBS up to use 10 different menu designs at 
  169.         random.
  170.      -= Anti-Duplicate defense: LightSpeed includes several security
  171.         precautions to prevent users from creating more than one account
  172.         per person.  LightSpeed also includes LsVerify, which you can use
  173.         to force users to give an accurate phone number.
  174.  
  175.   And LightSpeed has a bright future ahead of it.  Some of the things
  176. we've considered, or even planned, in the future are:
  177.  
  178.   -  For larger systems, future plans involve adding internal multi-tasking 
  179.    support, which makes it possible to operate as many as 200 different phone
  180.    lines (nodes) from a single computer with no loss of speed.  For now, you 
  181.    must use a multitasker such as Windows 95, DesqView, or Dv/X (Windows 3.1
  182.    may be possible, but is un-recommended.)  
  183.  
  184.   -  C/C++ programmers will soon have the ability to write programs with 
  185.    help from LightSpeed as easily as writting a program to run on your own
  186.    computer.  Our add-ons, LsVote, LsWall, LsVerify, LsChat, and LSPlanets
  187.    provided with LightSpeed, and our Teleconference module, are all written
  188.    using this code.  In the future, support for Pascal is expected.
  189.    
  190.   -  There are even plans being considered to allow a new 256 color remote 
  191.    operation mode.  That would allow fully digitized graphics for your
  192.    BBS.  Your main menu could be a digitized image, or something you've drawn
  193.    with up to 256 different colors.  We've tested this technology and found 
  194.    it can operate often faster than regular ANSI in our system.  And another
  195.    untested technology we've considered is graphical (256 color) animations
  196.    across the modem.  While untested, we predict it may be possible to do
  197.    so with a frame rate of 10fps in a 120x100 window.  There are no current
  198.    plans to implement animation technology, however, at least until faster
  199.    modems become common.
  200.  
  201.   -  We will be looking at adding Internet support through LightSpeed soon.
  202.  
  203.   -  LightSpeed will features a built-in BBS-to-BBS communicatations system
  204.    called "LaserLink" which lets LightSpeed systems share different data
  205.    such as messages or files, and even any doors written with LsDoor.
  206.  
  207.   -  We are currently looking at writting 2 additional versions, one with
  208.    internal multi-tasking, and one for Windows-based operation.  The
  209.    Windows edition has never really been done before, but, IF DONE PROPERLY,
  210.    it is expected that it can surpass DOS operation in many aspects
  211.    including speed and simplicity.  
  212.  
  213.   If you downloaded this file off a BBS system, it is either the Trial 
  214. edition or illegal software (pirated).  If you received this software on
  215. a floppy disk, look at the disk's label to figure out which edition you
  216. have.  What is limited about the Trial Edition?
  217.  
  218.   - Doors are totally disabled.
  219.  
  220.   - Actual uploads and downloads are disabled.  The file system operates 
  221.     normally except for the actual file transfers, so you can still have a 
  222.     look at it.  (Currently, LightSpeed would require GSZ or DSZ companions 
  223.     to help with the downloads & uploads, these can be found very easily on 
  224.     local BBS systems)
  225.  
  226.   - No teleconference is included.  (Teleconference is normally run from a 
  227.     door, this door is specially designed to work well with LightSpeed.)
  228.  
  229.   - Questionare links (doors in questionares) are disabled.
  230.  
  231.   - System events involving batch files are disabled.  This also disables 
  232.     LightSpeed's daily maintenance from being run automatically (you can 
  233.     still run it manually using the program MAINT.EXE in your LightSpeed
  234.     directory).  Daily maintenance is required to purge aged mail and user 
  235.     accounts, and to purge unused data from the user & mail databases and
  236.     a few other tidy-up operations.
  237.  
  238.                         [Part 1 - Getting Started...]
  239.  
  240.   For instructions on your initial setup of LightSpeed, see README.DOC.
  241. Change to your LightSpeed directory and type:  SHOW README.DOC[Enter] to
  242. view it.
  243.  
  244.   [1.1 - Modifying the questionare...]
  245.  
  246.   A "questionare" is a text file which you can modifying which gives
  247. LightSpeed questions it will later ask your users.  The "answer" file
  248. is a text file created by LightSpeed which holds the answers your users
  249. give to your questions.  The "new user questionare" is presented to users
  250. when they create a new account on your system, and is needed to gather
  251. some basic information such as the user's name, phone number, address,
  252. terminal type, etc.  You can also use questionares to gather specialized
  253. information for a purpose other than creating an account.  For example,
  254. our BBS system uses a questionare called "Guest.Qst" which creates an
  255. answer file called "Guest.Out".  This questionare is presented to any
  256. user who logs on to our system as "Guest".  It gathers some quick 
  257. information, but is kept short so that users who are eager to try out
  258. LightSpeed can do so without having to take too long answering boring
  259. questions.  Almost all LightSpeed systems need a new user and registery 
  260. questionare.  Both have been provided with LightSpeed, however if you
  261. wish to modify them to suit your needs, here's how:
  262.  
  263.   You must use a text editor, such as MS-Dos EDIT, to modify the questionare
  264. file.  To start off with, you can edit the new user questionare included
  265. with LightSpeed (You should keep a backup however, in case you make a
  266. mistake.)  The file is \Ls\Quest\New.Qst.  When working with the included
  267. file, you'll notice some odd looking @C symbols inside many of the 
  268. quotation marks, these are explained more later, and are used to control
  269. the color of the text.  In all LightSpeed text files, uppercase and 
  270. lowercase are ignored, except when in quotation marks (which usually is 
  271. something shown to the user exactly as it appears in the quotations.)  
  272. You can indent as much as you like (Leave spaces at the start of the line),
  273. and it is recommended that you do so to make your file easier to read later.
  274. Blank lines are always ignored, and lines beginning with a ; are ignored.
  275.  
  276.   In questionares, lines that begin with a + are read to both the reader 
  277. and your answer file.  Lines that begin with - are placed in the answers 
  278. but hidden from your users.  Lines that begin with a | are read to the 
  279. user but not repeated in your answers.  Blank lines are also ignored.  To 
  280. ask a question, place an "Ask" statement in your questionare.  The format 
  281. of an Ask statement is:
  282.  
  283. ASK type [FORCE] [store] [NEW] "Question?"
  284.  
  285.   You may put whatever you like in place of "Question?" but the quotes must
  286. be there.  The keyword FORCE specifies that the user MUST give this
  287. information to continue.  They cannot press [ENTER] and leave it blank,
  288. for example, in a forced question.  The keyword NEW specifies that the
  289. question take two lines, this is usually not very important.  A question
  290. without NEW might appear like so:
  291.  
  292. What is your real name?  Micheal Smi_
  293.  
  294.   Where a question with NEW might show up like:
  295.  
  296. What is your real name?
  297. ] Micheal Smi_
  298.  
  299.   It is mostly a matter of personal taste, and sometimes you won't have
  300. enough space to fit the entire answer on a single line. 
  301.   'Type' can be any of the following, which tell LightSpeed what kind of 
  302. information you want:
  303.  
  304. ASK STRING...    Gets any information.
  305. ASK NUMBER...    Asks for a number.
  306. ASK CHARACTER... Asks for a single letter.
  307. ASK SPECIAL...   Asks for a formatted type (Explained later).
  308. ASK Y/N...       Asks a yes or no question.
  309. ASK CHOICE...    Asks a multiple choice question (Explained later).
  310. You can also use MULTIPLE and OPTION in place of CHOICE.    
  311.  
  312.   An Ask Special statement uses a slightly different format:
  313.  
  314. ASK SPECIAL [FORCE] [store] [NEW] "Format" "Question?"
  315.  
  316.   The "Format" is used by LightSpeed to force the user to answer in a 
  317. special way.  This is usually used with phone numbers, dates, times,
  318. and the like.  Your format might be: "(###)###-####" for a phone number.
  319. LightSpeed will display the "(   )   -    " parts as they reach them,
  320. by itself.  And for each # it encounters, it expects a number.  You can
  321. also use * characters to expect any letter, such as: "***" to expect 3
  322. letters for an answer, or "***-***" to expect 3 letters, then LightSpeed
  323. shows an - and finishes by expecting 3 more letters.  You might use the
  324. * character for a time: "##:## *m" and the user must enter 4 letters
  325. followed by a single letter.  An example special statement:
  326.  
  327. Ask Special Force New "##/##/##" "What is your birthdate?"
  328.  
  329.   Which would show up something like:
  330.  
  331. What is your birthdate?
  332. ] 01/2_
  333.  
  334.   Finally, the Ask Multiple statement allows your users to pick an option
  335. from a list of choices.  An example to start off with:
  336.  
  337. Ask Multiple "Where did you hear about this BBS from?"
  338. {
  339.   '1' "From a magazine"
  340.   '2' "From a friend"
  341.   '3' "From an ad"
  342.   '4' "From a program we sold"
  343. }
  344.  
  345.   Which would show up to the user as:
  346.  
  347. Where did you hear about this BBS from?
  348.  
  349.   [1]...From a magazine
  350.   [2]...From a friend
  351.   [3]...From an ad
  352.   [4]...From a program we sold
  353.  
  354. Selection? _
  355.  
  356.   The curly brackets after the Ask Multiple statement show the start and
  357. the end of the choices.  You MUST have both a start and end bracket ON
  358. THEIR OWN LINE as shown above, or LightSpeed will give you errors.  Inside 
  359. the brackets, is the list of the choices the user will be presented with.  
  360. One option is given on each line.  Each option has two parts to it, the KEY 
  361. and the TEXT.  The key is what key the user will press to choose that 
  362. option.  The text is what is shown to the user for the option.  The key is 
  363. always surrounded by single quotes (') and is one character.  The option is 
  364. always surrounded by double quotes (") and can use the full line if needed 
  365. (but only one line, the ending quote must be on the same line as the starting
  366. quote.)  You can have as many options as you want, but you must use a
  367. seperate key for each option or your users won't be able to select between
  368. them.
  369.  
  370.   The other Ask types are fairly self-explainatory.  Ask String asks the
  371. user for a single line of any kind of information.  Ask Number asks for
  372. a single line of numeric information.  Ask Character gets a single letter
  373. from the user.  Ask Y/N asks a yes or no question (it forces the user to
  374. either press Y or N).  
  375.  
  376.   That's all there is to questionares, except the [store] part.  However,
  377. you should now be able to create informational questionares for purposes
  378. such as getting a user's order for a product, or answering a poll.  
  379.  
  380.   The [store] part of the command tells LightSpeed that the answer the
  381. user gives is to be used by LightSpeed for some purpose.  For example:
  382.  
  383. Ask String Real "What is your real FULL name?"
  384.  
  385.   The above instructs LightSpeed to save the answer in "Real", which is
  386. short for "Real Name".  Later, when you look in the sysop database (Where
  387. you can review all the user's accounts) you'll see the user's real name
  388. matches whatever they answered here.  The options you can choose for
  389. store are as follows (You can only use one of them in a single question):
  390.  
  391.   [Note: Some storage types must be done in multiple-choice, and the
  392.    usual format is specified beneath them.  You can change the TEXT in
  393.    such multiple-choices to whatever you like, but keep the KEYS the same.
  394.    You can safely leave out any options you wish from the multiple choices,
  395.    but it disables the user's ability to select it.  This is usually okey,
  396.    but might not be a good idea when asking a user's sex.]
  397.  
  398.   REAL         ..Real name (Expects 2 words, checks for duplicates)
  399.   PASSWORD     ..Password (Forces the user to re-enter to verify)
  400.   VPHONE       ..Voice phone number (Checks for duplicates)
  401.   DPHONE       ..Data phone number
  402.   FROM         ..User's city & state
  403.   ZIP          ..User's zipcode
  404.   BDAY         ..User's birthdate  (Use special format: "##/##/##")
  405.   SEX          ..User's gender..
  406.     (Use multiple choice: in any order, as stated above)
  407.        'M' "Male"
  408.        'F' "Female"
  409.        'X' "Not disclosed"   [Optional]
  410.   TERMINAL     ..User's terminal type
  411.     (Use multiple choice: in any order, as stated above)
  412.     'N' "No-color"
  413.     'C' "Color"
  414.     'R' "Ripterm"          (If you have it enabled)
  415.     'A' "Auto-detect"      (AutoDetect when the user first connects)
  416.   LINES-       ..Number of lines on a user's screen (Use ASK NUMBER)
  417.   LINES+       ..Same, but displays 50 numbers and when using this type,
  418.                 ask what number is the first on their screen (or on the top)
  419.   PROTO        ..User's default file transfer protocol (Use ASK CHARACTER)
  420.   EDITOR       ..User's default mail editor
  421.     (Use multiple choice: in any order, as stated above)
  422.     'F' "Full-Screen (Requires ANSI)"     
  423.     'L' "Line-Editor"
  424.     'S' "Select each time"      
  425.     'A' "Autodetect"            (Determines by the user's terminal setting)
  426.   COMMENT1     ..For your own use, might be a good place for user's address
  427.   COMMENT2     ..For your own use
  428.      ...
  429.   COMMENT8     ..For your own use
  430.   REG.AGE      ..Registery "age" 
  431.   REG.PHONE    ..Registery "voice phone number"
  432.   REG.FIRST    ..Registery "first name"
  433.   REG.HOBBIES  ..Registery "hobbies"
  434.   REG.SPORTS   ..Registery "sports"
  435.   REG.BOARD    ..Registery "bbs name" (Also see IF statement below)
  436.   REG.BBSNUM   ..Registery "bbs number" (Also see IF statement below)
  437.   REG.LOOKS    ..Registery "appearances"
  438.   REG.STYLE    ..Registery "style" 
  439.   REG.MOVIE    ..Registery "Favorite movie"
  440.   REG.TVSHOW   ..Registery "Favorite TV Show"
  441.   REG.MUSIC    ..Registery "Favorite music"
  442.   REG.SUMMARY1 ..Line 1 of registery summary
  443.   REG.SUMMARY2 ..Line 2 of registery summary
  444.  
  445.   There are also 10 variables you can use as you wish.  These can hold
  446. a NUMBER, CHARACTER, Y/N, or MULTIPLE CHOICE answer in them.  You can later
  447. make decisions based on these variables.  They are used as I[x] as storage,
  448. where x is 0 through 9 (Like I[2] or I[6]).  For numbers, they hold the
  449. number between 0 and 65,000, for characters, they hold the letter the user
  450. pressed.  For multiple choices, they hold the KEY the user pressed.  For
  451. example, in a registery questionare, you might want to ask if a user owns
  452. his own BBS before asking what the name and number of it is.  So, you start
  453. by asking the yes or no question:
  454.  
  455. Ask Y/N I[1] "Do you operate a BBS? (Y/N) "
  456.  
  457.   Then, you decide what to do next by an "IF" statement in your questionare.
  458. The forms of an IF statement are:
  459.  
  460. IF [thought] = [thought]
  461. IF [thought] == [thought]
  462. IF [thought] >= [thought]
  463. IF [thought] > [thought]
  464. IF [thought] < [thought]
  465. IF [thought] <= [thought]
  466. IF [thought]
  467.  
  468.   Both = and == mean the same thing.  > means "greater than" and < means
  469. "less than".  >= means "greater than or equal to" and <= means "less than
  470. or equal to".  A single [thought] by itself performs the action if the
  471. [thought] comes out to be anything other than 0, otherwise it "isn't true".
  472. All "IF" statements must have a matching "ENDIF" statement, which is simply 
  473. ENDIF on its own line.  For our example:
  474.  
  475. Ask Y/N I[1] "Do you operate a BBS? (Y/N) "
  476. If I[1] == 'Y'
  477.   Ask String Reg.Board "What is the name of your BBS? "
  478.   Ask String Reg.Bbsnum "What is the number to your BBS? "
  479. Endif
  480.  
  481.   The indents are optional, but make it easier to read.  [thought]s can be 
  482. any number, any letter (in single quotations), or any of the variables.  
  483. Some examples:
  484.  
  485. IF 'A' == 'B'                             ...This could never be true
  486. IF 10 = 15                                ...This could never be true
  487. IF 5                                      ...This is always true
  488. IF 0                                      ...This is never true
  489. IF I[4]                                   ...This is true if I[4] is not 0
  490. IF I[2] == 15                             ...This is true if I[2] is 15
  491.  
  492.   Finally, there are some other less-important commands you can use in your
  493. questionares.  
  494.  
  495.   The SHOW command displays a text file, which can be rip, ansi, or ascii.
  496. If the user is in RIP mode, LightSpeed looks for the file with the extension
  497. ".RIP", in ANSI mode ".ANS", in ASCII mode ".ASC".  Example:
  498.  
  499. SHOW INTRO.ish [MORE]
  500.  
  501.   The .ish is replaced anyway and is ignored.  You don't need a . on the
  502. filename if you don't want, and the filename shouldn't be in quotations.
  503. MORE can be specified if you want to force LightSpeed to display a prompt
  504. before proceeding.  If the file being displayed is longer than one screen
  505. or contains the @PAUSE@ keyword, LightSpeed will display the prompt anyway.
  506. If you find your screen scrolling away before you can see it, add MORE to
  507. the command.  You can also specify a PAUSE command in your questionare.
  508.  
  509. SHOW INTRO.JNK
  510. PAUSE  
  511.  
  512.   The EXIT command can end your questionare.  It CAN be used from within
  513. an IF statement to end your questionare early.  It is also not required,
  514. because when the end of the questionare file is reached, it is assumed you
  515. wanted to EXIT at that point.  However, in the new user questionare, you
  516. can also use the ABORT command to hang up the caller and end the questionare.
  517.   The SET command lets you modify a few settings, the three uses are:
  518.  
  519. SET SEC securityclass             ..Changes a user's security class
  520. SET EXPIRE numberofdays           ..Sets the user's expiration date 
  521.                                     to 'numberofdays' from now
  522. SET CREDITS number                ..Sets the user to have 'number' credits
  523.  
  524.   There is also a very rarely used command which may expanded on in future 
  525. versions called COPY, however it only copies two items at this time:
  526.  
  527. COPY COMMENT1->REG.STYLE
  528. COPY HANDLE->REAL
  529.  
  530.   The first simply copies whatever is in the COMMENT1 field of the user's 
  531. account to the user's registery style field.  The second copies
  532. whatever the user used to login as into their "real name".  A user's "real
  533. name" must be filled with something so that doors can identify a user.  With
  534. this method, you can use only "real names" on your system or use only 
  535. "handles" on your system (Using JUST handles is un-recommended, LightSpeed
  536. by default allows handles for all public operations, but it is advised that
  537. you keep the user's real name on record.)
  538.  
  539.   Last, except in the Trial version of LightSpeed which will ignore it, you
  540. can use:
  541.  
  542. DOOR filename
  543.  
  544.   To execute another program during the questionare.  This is a fairly
  545. simple command, although you should follow some guidelines to reduce any
  546. errors.  A) Always specify the path to your batch file as well as the batch
  547. file name.  B) Inside your batch file, always use .EXE, .COM, and .BAT after
  548. filenames you are executing to avoid conflicts.  Example:
  549.  
  550. DOOR "C:\Ls\LsVote.Bat"
  551.  
  552.   You can also make use of a few keywords after your filename with the
  553. DOOR command.  The first is DoorSys, which specifies that LightSpeed should
  554. ONLY create a door.sys dropfile.  The second is InfoLink, which specifies
  555. that LightSpeed should ONLY create an infolink.dat dropfile.  The third is
  556. Quick, which specifies that LightSpeed should not create any dropfiles. 
  557. Finally, you can add the Code or Codes keyword to add some environment
  558. variables.
  559.  
  560. %Code1% = Code[1]
  561. %Code2% = Code[2]
  562.   ...
  563. %Code5% = Code[5]
  564.  
  565.   Some examples of the keywords you can use:
  566.  
  567. DOOR "C:\Ls\LsVote.Bat" InfoLink
  568. DOOR "C:\Ls\Lord.Bat" DoorSys
  569. DOOR "C:\Ls\DoThis.Bat" Quick
  570. DOOR "C:\Ls\DoThat.Bat" Codes
  571. DOOR "C:\Ls\DoThem.Bat" DoorSys Codes
  572.  
  573.   Now, you'll want to know how you can make use of these questionares, which
  574. brings us to the most powerful feature in LightSpeed, the menuing system.
  575.  
  576.   [1.2 - Modifying the menu screens...]
  577.  
  578.   Before you can change what the user can do with your system, you must
  579. first know how to modify what your user sees.  Most BBS Sysops find a
  580. program named "TheDraw" very helpful for this.  Future versions of
  581. LightSpeed will have their own program for drawing ansi and ascii
  582. screens, but for now, it is recommended that you get a copy of TheDraw
  583. off a local BBS (it's quite common and should be easy to find).  
  584.  
  585.   LightSpeed always ignores a file's extension when it comes to display
  586. files.  For example, if it is told to display "MyFile.Duh" then its the
  587. same as saying just "MyFile" as LightSpeed will first look for "MyFile.Rip"
  588. (if rip is enabled), then "MyFile.Ans" (if ansi color is present), and 
  589. finally, it will try "MyFile.Asc" in all cases.  There are also special
  590. codes you can use in your display files.  More of these will be added
  591. later, but for now, they are:
  592.  
  593.   @PAUSE@      ..Prompts the user with a prompt before continueing
  594.   @CLS@        ..Clears the user's screen (and the local screen if needed)
  595.   @HOME@       .."Homes" the cursor to the upper left corner of the screen
  596.   @NONSTOP@    ..Turns off automatic pause prompting at the end of every page
  597.                  [This also disables the @PAUSE@ code]
  598.   @NOSTOP@     ..Turns off the ability to press [S]top at a prompt
  599.   @STOP@       ..Turns on the ability to press [S]top at a prompt
  600.   @USER@       ..Replaced with the user's alias
  601.   @REAL@       ..Replaced with the user's real name
  602.   @CREDITS@    ..Replaced with the number of credits the user has
  603.   @IFBAUD+xxxx@    ..Proceeds only if the user's baud rate is at or greater
  604.                      than or equal to xxxx baud.  Otherwise, everything up
  605.                      until the @ENDIF@ code is skipped.  Example: 
  606.                      @IFBAUD+2400@
  607.   @IFBAUD-xxxx@    ..Proceeds only if the user's baud rate is less than
  608.                      or equal to xxxx baud.  Example:  @IFBAUD-14400@
  609.   @IFSEC=xxxx[,xxxx[,xxxx[...]]]@  
  610.   @IFSEC!=xxxx[,xxxx[,xxxx[...]]@
  611.                    ..Proceeds only if the user has a security class 
  612.                      named xxxx.  You can specify multiple security class
  613.                      seperated with commas.  If the != is specified,
  614.                      proceeds only if the user DOES NOT have a security
  615.                      class named xxxx.
  616.   @-@              ..Sends a "save cursor position" ansi code (if ansi is on)
  617.   @+@            ..Sends a "restore cursor position ansi code (if ansi is on)
  618.   @{x}@          ..Sets the background color to x, where x is any of the
  619.                    codes below:  (if ansi is enabled)
  620.   @x@            ..Sets the foreground color to x, where x is any of the
  621.                    codes below:  (if ansi is enabled)
  622.  
  623.     Bright colors         Dark colors                  Background colors
  624.     [Case matters]        [Case matters]               [Case is ignored]
  625.  
  626.       @1@  Grey       @o@ or @O@ (Letter O) Black        @{O}@  Black
  627.       @B@  Blue             @b@  Blue                    @{B}@  Blue
  628.       @G@  Green            @g@  Green                   @{G}@  Green
  629.       @C@  Cyan             @c@  Cyan                    @{C}@  Cyan
  630.       @R@  Red              @r@  Red                     @{R}@  Red
  631.       @M@  Magenta          @m@  Magenta                 @{M}@  Magenta
  632.       @Y@  Yellow           @y@  Brown                   @{Y}@  Brown
  633.       @W@  White            @w@  Dim White               @{W}@  Grey
  634.  
  635.   It is OK to use the @x@, @{x}@, @-@, and @+@ codes in an .ASC (Ascii,
  636. usually non-color) file.  And if you do so, an .ANS file isn't required at
  637. all.  If the user is in ansi mode, the .ANS file doesn't exist, and @x@ style
  638. codes are found in the .ASC file, LightSpeed will use those to set the
  639. coloring.  If the user is in ascii mode, @x@ style codes are just ignored.
  640. However, TheDraw does not make it easy to use the @x@ codes (when you change
  641. the color in TheDraw, you are changing the ANSI color, NOT with @x@ codes)
  642. therefore it is recommeded that you stick to creating a seperate .ANS and
  643. .ASC file for your users.  You can use the other @xxx@ codes like @CLS@ and
  644. @PAUSE@ in any of your LightSpeed display files, .RIP, .ANS, and .ASC.
  645.  
  646.   INSIDE of LightSpeed, when YOU or your users are using the system, you
  647. can enter the @x@ color codes in places such as messages to other users
  648. etc., but you do not attach the second @ to it.  For example, what is @R@
  649. for bright red in your display files is instead @R in a message to change
  650. the color to bright red.  And @{B}@ to change to a blue background would
  651. become @{B} in a message.  Also, inside LightSpeed, the code for black
  652. becomes @{0} (with a zero) instead of @{O}@ (with an "oh" letter).
  653. This confusion will hopefully be simplified in a later version.
  654.  
  655.   Keep in mind, you don't normally need to use the @PAUSE@ codes.  LightSpeed
  656. automatically displays a pause prompt after every screenful in your display
  657. file, the pause prompt looks like:
  658.  
  659. -=Pause=-  [C]ontinue, [N]onstop, or [S]top?
  660.  
  661.   The user hits ENTER or C to continue, and the pause prompt is erased if
  662. possible.  The user can press N to have the same effect as @NONSTOP@, and
  663. pause prompts will not be displayed until the display file ends or until
  664. a @STOP@ code is reached (The @NONSTOP@ code and [N]onstop mode are
  665. interchangable.)  Nonstop is usually selected by a user who wants to capture
  666. something with their terminal program.
  667.  
  668.   Also, in a few LightSpeed display files, you may notice @.xx@ codes,
  669. with a number from 0 to 49 in place of the xx, such as @.21@ which are used
  670. to tell LightSpeed it needs to display some information at this point.
  671. The exact information is different for each display file that uses these
  672. special codes, so if you see them, make sure the @.xx@ is not modified (it
  673. is safe to relocate it, and change the rest of the display file, but make
  674. sure the @.xx@ codes themselves are not removed or changed, or the 
  675. information tied to it will not be shown.)  An example of this is the
  676. "Statistics" display file.  There is one place where you may want to add
  677. @.xx@ codes of your own: Menu display files.  Explained more later, 
  678. "codes[]" are a group of numbers you can modify for your own use, and if 
  679. you want to display them in a menu, use the first ten @.xx@ codes.  This is 
  680. very rare and not normally needed.
  681.  
  682.   Finally, the actual display files you will work with are in three different
  683. locations.  The first kind are "menu display files" which are what the user
  684. sees for a "main menu" or "file menu" and tells them what they can do from
  685. there.  These are held in \Ls\Menu by default.  One display file exists for 
  686. each .CON file (these are explained more in the next section, and the .CON 
  687. file tells LightSpeed what the menus can do.)
  688.   
  689.   Then, the "general display files" are held in \Ls\Disp.  These are used
  690. for different purposes, a few that are normally available (they don't HAVE
  691. to be there, and some of them don't exist, but you can create them anytime
  692. you want.)
  693.   
  694.   PrelogA.xxx   ..Shown before a user enters their alias.
  695.   PrelogB.xxx   ..Shown in place of PrelogA for slower than 9600 baud users.
  696.   Hello1.xxx    ..Shown right after a user logs in.
  697.   Hello2.xxx    ..Shown after Hello1.xxx.
  698.     ...
  699.   Hello9.xxx    ..Shown after Hello8.xxx.
  700.   News.xxx      ..Holds the latest news (shown from main menu usually)
  701.   Goodbye.xxx   ..Shown after user selects to log[O]ff or [G]oodbye.
  702.   PreSysop.xxx  ..Shown before a sysop chat begins
  703.   PstSysop.xxx  ..Shown after a sysop chat ends
  704.   PreUl.xxx     ..Shown before user begins upload information sequence
  705.   Upload.xxx    ..Shown as header for file description screen (Use caution
  706.                   ..when modifying this one)
  707.   Proto.xxx     ..Shown when selecting transfer protocal (See file transfers)
  708.   Closed.xxx    ..Shown to a user on a Closed system (See also: LSConfig.Doc)
  709.  
  710.   Finally, the "bulletin" or "information" files are held in \Ls\Bull.  
  711. These are usually shown when a user selects a choice from the "Information"
  712. menu.  These are explained more later.
  713.  
  714.   [1.3 - Modifying the menu system...]
  715.  
  716.   Now, the most crucial part of the LightSpeed system.  Its flexible
  717. menuing system.  The menuing system is what gives you the freedom to do
  718. so much with LightSpeed, and present it in whatever form you want.
  719.  
  720.   First, you've already seen what are the DISPLAYS for menus.  But, that is
  721. only a front that the user sees.  What a menu actually DOES is controlled
  722. by the .CON files in your \Ls\Menu directory.  These are text files in a
  723. format slightly like what was used by the questionares.  They are called
  724. "menu control files" or just "control" files for short.  
  725.  
  726.   Just like with the questionares, you can have blank lines in control
  727. files, and lines starting with a ; are ignored.  It is also safe to indent
  728. as much as you like.  However, any command in a control file must be in 
  729. this format:
  730.  
  731. - COMMAND ["Information"] ["Information"] [...]
  732. COMMAND ["Information"] ["Information"] [...]
  733. 'k' COMMAND ["Information"] ["Information"] [...]
  734.  
  735.   The k is a single letter which the user must press to activate the command.
  736. For example, if the command is to download a file, the k or key might be
  737. D for download.  If no key and no - is specified, the command is executed 
  738. everytime the user is at this menu.  The - is explained later, but is 
  739. executed everytime the menu is redisplayed.  An example, a command with no
  740. key (executed everytime the user reaches this menu):
  741.  
  742. Status "Main Menu"
  743.  
  744.   (That is a valid command)  A command with no key not only executes every
  745. time the user is at this menu, but everytime the user presses a key at this
  746. menu, no matter what that key is.  The word "Status" tells LightSpeed what 
  747. you want it to do here, it is the actual command.  "Main menu" is some 
  748. information to go along with the command.  In this case, the "status 
  749. display" is what other users see when they select to see [W]ho's online.  
  750. For example:
  751.  
  752.   [User pressed W for Who's online]
  753.   Baud    User                Sex        Status
  754.   2400    King Burgundy       Male       File System
  755.   14.4k   Rev.Pslock Macro    Male       Main Menu
  756.   14.4k   Dalbeth             Female     Games Menu
  757.  
  758.   The status of Rev.Pslock Macro was set when he entered the main menu and 
  759. a line in the main menu CON file (Main.Con by default) read as above.  The 
  760. status of King Burgundy was probably set when he entered a file menu CON 
  761. file (File.Con by default) and this line was found:
  762.  
  763. Status "File System"
  764.  
  765.  [ Hint for more advanced users: To save you worrying about when you need
  766. quotes and not, just remember this rule:  Anytime you need a phrase that
  767. includes more than word, a space, you must enclose it in quotations.  All
  768. other times, you may leave out quotations.  You must ALWAYS leave quotations
  769. out of the command, in the above example that was the keyword Status. ]
  770.  
  771.   Now, if a user selects to do something other than flip between menus?  
  772. What if a user wants to enter a game?  How can you make the status read 
  773. "Playing Phobia", where Phobia is the name of a game?
  774.  
  775. 'P' Status "Playing Phobia"
  776.  
  777.   With that statement, anytime the user presses P their status is immidiately
  778. changed to read "Playing Phobia".  Notice there is a key listed this time, 
  779. the P key, which means that pressing P is what triggers the command.  
  780.  
  781.   An important rule to remember when working with the menu system is that
  782. you can have an infinite number of commands for each key.  That is especially
  783. true of something like the above Status command, since you don't want a user
  784. to have to hit P just to set their status display.  The order in which 
  785. LightSpeed handles the commands is the order in the control file.  For 
  786. example:
  787.  
  788. 'P' Status "Playing Phobia"
  789. 'P' Door "Phobia.Bat"
  790.  
  791.   In this case, the user presses P only once, in which LightSpeed FIRST
  792. sets the user's status to read "Playing Phobia" and THEN it activates the
  793. door in Phobia.Bat (More on that later.)  
  794.  
  795.   There are over 30 different commands involved in control files.  However
  796. not all of them are very important.  So before we go into each command, there
  797. are a few very frequently used ones that should be covered.  First, the
  798. MENU command.
  799.  
  800.   The MENU command is relatively simple.  It simply changes to a different
  801. menu control file when a user presses a key (of course you could use it
  802. without a key, but there's rarely need for that.)  An example that is 
  803. commonly used is the command to go to the "File menu":
  804.  
  805. 'F' Menu "File.Con"
  806.  
  807.   So, if the user hits F, the current menu terminates.  Then, the display
  808. file matching File.Con is shown (\Ls\Menu\File.Rip, .Ans, or .Asc) and then
  809. LightSpeed begins operating from File.Con, at which point it will probably
  810. wait for the user to press another key.  Keep in mind that the MENU command
  811. is one reason that LightSpeed will NOT handle every command in the current
  812. menu.  For example:
  813.  
  814. 'F' Status "File System"
  815. 'F' Menu "File.Con"
  816. 'F' Door "Files.Bat"
  817.  
  818.   In this example, LightSpeed can never perform the 3rd command, the DOOR
  819. command, because it will already have terminated having anything to do with
  820. this menu when it reaches the MENU command.  However the 1st command BEFORE
  821. the MENU command is acceptable.
  822.  
  823.   The MENU command also allows you to modify one of the Codes variables
  824. (explained later.)  If you specify a number or value after the menu 
  825. filename, Code[0] will be set to that value from this command.  Note
  826. however, that you cannot use the keywords ON or OFF here, as you can with
  827. the SET command explained later.  Examples:
  828.  
  829. 'A' Menu "File.Con" All
  830. '1' Menu "File.Con" 1
  831. '2' Menu "File.Con" 2
  832.  
  833.   The above would set Code[0] to All (which is the same as 0), 1, or 2 when
  834. the A, 1, or 2 keys are pressed.
  835.  
  836.   Another important command is the SHOW command.  The SHOW command displays
  837. a .Rip, .Ans, or .Asc file to the user.  This file is treated just like any
  838. other display file, and is usually kept in either the \Ls\Disp or \Ls\Bull
  839. directories.  The SHOW command is most used in the "Information" or 
  840. "Bulletin" menu.  For example, if you have 3 bulletins in your menu:
  841.  
  842. '1' Show "Bull1.xxx"
  843. '2' Show "Bull2.xxx"
  844. '3' Show "Bull3.xxx"
  845.  
  846.   Pressing 1 displays the file Bull1.Rip, .Ans, or .Asc to the user.  So
  847. on with the other two commands.  You can specify MORE after the filename
  848. if you find your screen scrolling away before you can see it.
  849.  
  850.   The DOOR command works just like in questionares.  All 4 keywords are
  851. also supported here.
  852.  
  853.   The IF command provides a great deal of LightSpeed's flexibility.  The
  854. IF command is best demonstrated by the need to allow only selected people
  855. into the sysop menu (The sysop menu holds commands for system control such
  856. as the user database which lets the sysop view and change any user's account 
  857. information.)  
  858.  
  859. '!' If Sec "Sysop, Master"
  860.   '!' Menu "Sysop.Con"
  861. '!' Endif
  862.  
  863.   This example takes effect when the user presses the ! key.  First, the
  864. IF statement is encountered.  LightSpeed thinks "this guy IS a sysop, its
  865. okey to go on."  So it encounters the Menu command and jumps off to that
  866. menu.  What if the user ISN'T a sysop?  LightSpeed would ignore the MENU
  867. command, and any commands, until it reaches the ENDIF command.  Why is it
  868. checking that the user is a sysop?  Because the "Sec" is short for Security,
  869. and (in this example) sysops have either "Sysop" or "Master" security 
  870. classes.  The example is TRUE when the user has security classes of Sysop or
  871. Master, and is FALSE when the user has any other security class.  When an
  872. IF statement is TRUE, it executes the commands that are between the IF and
  873. ENDIF.  When an IF statement is FALSE, it does NOT do execute any of the
  874. commands that are between the IF and ENDIF, and continues with any commands
  875. PAST the endif.  
  876.  
  877.   There are multiple forms of the IF command.  However all forms of the IF 
  878. command require a matching ENDIF statement later.  IF commands can be nested,
  879. which means you can have an IF inside an IF inside an IF...  There are many 
  880. different uses of the IF command.
  881.  
  882. 'k' IF ASK YES/NO              
  883.  
  884.   This simply waits for user to press Y or N.  You specify EITHER Yes or No
  885. in your command.  If the user hits Y and you specified YES, the IF statement
  886. is true, if the user hits Y and you specified NO, the IF statement is false.
  887. Examples:
  888. 'P' If Ask Yes
  889.   ...Whatever commands are here will only happen when the user pressed Y...
  890. 'P' Endif
  891.  
  892. 'k' IF CODE[x] ON/OFF/comparison [####]          ..This is explained later.
  893.  
  894. 'k' IF UPDATED "filename,filename,filename,..."       
  895.  
  896.   In the above, the IF statement is true if any of the filenames have been 
  897. modified since the user's last call.  You can specify any number of filenames
  898. seperated by commas.  For example:
  899.  
  900. 'N' If Updated "Bull1.xxx,Bull2.xxx,Bull3.xxx"
  901.  
  902. 'k' IF FLAG[x] ON/OFF
  903.  
  904.   The above command may not work in this early version, however it would 
  905. allow you to do some extra "grouping" of users.  "Flags" can be set to a 
  906. number, a number of days, by the sysop.  Each user can have 20 different 
  907. flags (the "x" in the above states which one is being checked here.)  After 
  908. the number of days, or if the flag is never turned on by the sysop, the flag 
  909. is turned "OFF".  Otherwise the flag is turned "ON".  Specify EITHER ON or 
  910. OFF in the IF statement just like with the If Ask (Yes or No) command.
  911.  
  912. 'k' IF SUBMENU[x] ON/OFF
  913.  
  914.   The above command may not work in this early version, however it would 
  915. allow you to turn off parts of the system after a set amount of time.  For 
  916. example, say you didn't want any users to use the file system more than 30 
  917. minutes a day, but you don't mind them playing doors for up to 60 minutes a 
  918. day?  To fill this scenario, you would give the user 60 minutes a day total 
  919. (done by their security class) and use this to enter the file system (This 
  920. would be placed in the MAIN control, main.con, and controls the user's 
  921. ability to GET TO the FILE control, file.con):
  922.  
  923. 'F' If Submenu[1] On
  924.   'F' Menu "File.Con"
  925. 'F' Endif
  926.  
  927.   And finally, you set the security class you want modified.  Under LSConfig,
  928. you would go to the security class of interest, and select "Submenu levels",
  929. and set submenu-one to "30" for 30 minutes a day.  The above IF statement
  930. would be true for the first 30 minutes a user is online each day.
  931.  
  932. 'k' IF AGE comparison xxx
  933.  
  934.   In the above, 'comparison' can be >, >=, <, <=, ==, or = marks.  The xxx
  935. is any number.  This simply allows you to limit commands to certain age
  936. groups.  For example:
  937.  
  938. 'D' If Age >= 21
  939.  
  940.   Make sure you have spaces between AGE, comparison, and the number, but 
  941. NO spaces in comparison.  If Age>=21 would NOT work.  If Age > = 21 would
  942. NOT work.  But If Age >= 21 would work.  This applies to all "comparison"
  943. style IF statements.  The above IF statement is true if the user's age was
  944. 21 or over.  
  945.  
  946.   Comparisons can be:
  947.  
  948.     >            ...meaning "greater than"
  949.     >=           ...meaning "greater than or equal to"
  950.     ==           ...meaning "equal to"
  951.     =            ...meaning "equal to"
  952.     <            ...meaning "less than"
  953.     <=           ...meaning "less than or equal to"
  954.     !            ...meaning "not equal to"
  955.     !=           ...meaning "not equal to"
  956.  
  957. 'k' IF BAUD comparison xxxxx
  958.  
  959.   The above works just like the AGE statement, except it checks what the
  960. user's baud rate is.  xxxxx might be 2400, 9600, 14400, etc.  You can NOT
  961. use commas, periods, letters, or anything else inside your number (such as
  962. 14.4k.  It would NOT work, you must use 14400 instead.)  
  963.  
  964. 'k' IF ANSI ON/OFF
  965.  
  966.   The above tests if the user has Ansi color enabled, RipTerm enabled, or 
  967. is using LTerm with color enabled.  You specify EITHER ON or OFF.  IF ANSI
  968. OFF is only true of ASCII (Non-color) users.
  969.  
  970. 'k' IF RIP ON/OFF
  971.   
  972.   The above tests if the user has RipTerm enabled.  You specify EITHER ON
  973. or OFF.
  974.  
  975. 'k' IF DOORLEVEL comparison xxxx
  976.  
  977.   All security accounts have a setting named DoorLevel.  In a Door.Sys
  978. door, this is the only setting the door has to indicate a user's security
  979. level, so the number here is an alternative way of saying "this user is
  980. un-paid" or "this is a sysop", depending on the value of DoorLevel.  This
  981. setting can also be used by menus for whatever reason you choose.  The
  982. value is set in LSConfig:Security Classes.  It is always a number.
  983.  
  984. 'k' IF NEW PRIVATE/PERSONAL/PUBLIC[S]/POST[S]
  985.  
  986.   The above is true if the user had new mail of the specified type waiting.
  987. See also: The Mail System.
  988.  
  989. 'k' IF SEC "class,class,class..."
  990.  
  991.   The above is true if the user's security class is one specified.  For
  992. example:  
  993.  
  994. '!' If Sec "Sysop,Master"
  995.   '!' Menu "Sysop.Con"
  996. '!' Endif
  997.  
  998.   The above would allow only users with the security class of either "Sysop"
  999. or "Master" into the Sysop menu.  
  1000.  
  1001. 'k' IF -SEC "class,class,class..."
  1002.  
  1003.   The above proceeds only if the user's security class is NOT listed.  This
  1004. statement is best used in denying certain users privilages, an example
  1005. might be:
  1006.  
  1007. 'T' If "-Sec" "Demo"
  1008.   'T' Door "Teleconf.Bat"
  1009. 'T' Endif
  1010.  
  1011.   The above might prevent user's with the security class of "Demo" from
  1012. entering Teleconference.  The command can also be used to lock out unwanted
  1013. users from selected operations, for example:  Preventing users who has caused
  1014. trouble before in a game from getting into it again.
  1015.  
  1016. 'k' IF USER "handle,handle,handle..."  
  1017.  
  1018.   Tip:  Handle means the same as user alias.
  1019.  
  1020.   This command allows even more descresion upon who can use parts of the
  1021. system.  It allows only users that have a handle specified in the list
  1022. to proceed.  This command could be used to allow only a single person, or
  1023. a small group of named persons to do certain operations.  The most obvious
  1024. use is the sysop menu by specifying only the sysops in the list, however it 
  1025. is generally better to use a security class for that.  Example:
  1026.  
  1027. 'L' If User "Terror,Bob,Evil"
  1028.   'L' Door "Lord.Bat"
  1029. 'L' Endif
  1030.  
  1031.   The above would allow exactly 3 users to open a door named Lord.Bat.  
  1032. No-one except Terror, Bob, and Evil users could enter it.
  1033.  
  1034. 'k' IF -USER "handle,handle,handle..."
  1035.  
  1036.   This command is extremely useful in preventing unwanted users from getting
  1037. into places they shouldn't be.  It is true only if the user's handle is NOT 
  1038. listed.  For example:
  1039.  
  1040. 'W' If -User "Runningfrog"
  1041.   'W' Door "lsWall.Bat"
  1042. 'W' Endif
  1043.  
  1044.   The above would allow all users into "lsWall.Bat" EXCEPT for one who goes
  1045. by the alias of Runningfrog.  
  1046.  
  1047. 'k' IF NODE comparison xxx
  1048.  
  1049.   The above tests which node the user is on.  This can allow you to proceed
  1050. differently for different nodes.  The most common use is when you have a
  1051. door that for some odd reason won't work on certain nodes (say you have a
  1052. slow modem on node 2 and it doesn't work with your door.)  Here is how you
  1053. could still use that door on a different node:
  1054.  
  1055. 'L' If Node != 2
  1056.   'L' Door "Phobia.Bat"
  1057. 'L' Endif
  1058.  
  1059. 'k' IF LTERM ON/OFF
  1060.  
  1061.   The above is true when the user is using LightTerm.  This does NOT
  1062. necisarily mean that the user is using color or graphics, it checks ONLY if
  1063. the TERMINAL PROGRAM they are using is LightTerm (LTerm), which is the
  1064. companion program to LightSpeed.  You specify EITHER ON or OFF.
  1065.  
  1066. 'k' IF PASSWORD "xxxxxx"
  1067.  
  1068.   When all else fails, just password it.  In the above, LightSpeed will ask
  1069. for a password from the user.  If the password they enter matches, not
  1070. counting case then the IF statement is true.  Case is upper or lowercase 
  1071. letters, in here means the password BOB is the same as bOb or BoB or bob.
  1072. For example, you could password protect a door so only certain users could
  1073. use it:
  1074.  
  1075. 'L' If Password "OpenUp"
  1076.   'L' Door "Phobia.Bat"
  1077. 'L' Endif
  1078.  
  1079.   Those are all the IF statements available to you.  There is a little
  1080. additional flexibility on the IF statements, however.  You can use an ELSE
  1081. statement to provide two courses of action.  For example:
  1082.  
  1083. '!' If Sec "Sysop,Master"
  1084.   '!' Menu "Sysop.Con"
  1085. '!' Else
  1086.   '!' Display "Sorry, you do not have access to the sysop menu."
  1087. '!' Endif
  1088.  
  1089.   The above simply gives a polite reason why the ! key will not work for
  1090. them.  The DISPLAY command just shows a single line of text to the user.
  1091. The above would probably only be needed if the ! was listed in a menu
  1092. display, however they are valid commands.   
  1093.  
  1094.   Finally, there is one last major point to understand.  LightSpeed's
  1095. "jumping off" point is the menu control file "Start.Con" in your \Ls\Menu
  1096. directory.  This is the first menu used by LightSpeed, and contains what
  1097. could be considered the "login sequence" which is everything that normally
  1098. happens before a user reaches the main menu.  
  1099.  
  1100.   You should now understand all the basic form to the menu control files.
  1101. The above gives you the flexibility to make your BBS whatever you choose.
  1102. However, there are additional commands that are almost certainly needed by
  1103. every BBS.  They begin with the ability to handle credits.
  1104.  
  1105. 'k' RATE xxx
  1106.  
  1107.   The RATE command simply sets the consumption rate for the user's credits.
  1108. LightSpeed by default uses around 5 credits per minute.  (Most other BBS
  1109. systems operate on a per-second basis)  The RATE command can be placed
  1110. anywhere you like, and as soon as it is reached it CHANGES how many credits
  1111. are being used at the present time.  For example, you might want to increase
  1112. the credit usage whenever a user enters the file menu:
  1113.  
  1114. 'F' Rate 7
  1115. 'F' Menu "File.Con"
  1116.  
  1117.   It is also practical to use no key in front of Rate and set it in your 
  1118. menu.  Remember to set your rate to start off with somewhere in
  1119. Start.Con.  Also remember that the rate is adjusted automatically by the
  1120. hourly charging system (General configuration in LSConfig).  You may also
  1121. set the Rate to 0, probably somewhere in your Start.Con, to disable credit
  1122. consumtion.  You could set it to 0 in your Start.Con and LEAVE it that way
  1123. to disable the use of credits on your BBS (as long as you also leave out
  1124. any Charge commands, as explained now).
  1125.  
  1126. 'k' CHARGE xxxx
  1127.  
  1128.   The CHARGE command is an alternative way of using credits.  The charge
  1129. command does not effect the minute-by-minute rate of credit consumption, 
  1130. rather, it takes a sudden gulp out of the user's credit stash.  For example,
  1131. you could charge 20 credits for paging the sysop (which would certainly
  1132. reduce how many people page you). 
  1133.  
  1134. 'P' Charge 20
  1135. 'P' Internal 0 5
  1136.  
  1137.   The above may seem a little confusing.  In addition to having 30 different
  1138. commands in menu control files, there are about 15 more commands classified
  1139. just as "internal".  The INTERNAL command is how you perform numerous
  1140. operations, including, paging the sysop (Internal command 0-5).
  1141.   To tie a few ideas together, you could even ASK the user if they want to
  1142. pay the 20 credits before paging the sysop.  
  1143.  
  1144. 'P' Display "Paging the sysop costs 20 credits, continue?  (Y/N)  "
  1145. 'P' If Ask Yes
  1146.   'P' Charge 20
  1147.   'P' Internal 0 5
  1148. 'P' Endif
  1149.  
  1150.   The above displays the question, waits for the user to answer the question,
  1151. then "if the user answered yes" it proceeds to "charge the user 20 credits"
  1152. and finally "to page the sysop".  
  1153.  
  1154.   For purposes of security, LightSpeed provides what is called "activity
  1155. logs".  These logs are text file which LightSpeed writes as users perform
  1156. various activities.  A few things can be logged by LightSpeed itself, such
  1157. as a sysop chat.  Others, can only be logged by the menus.  The ADDLOG
  1158. command is responsible.
  1159.  
  1160. 'z' ADDLOG "text to be logged"
  1161.  
  1162.   Activity Log text can have some special things in it.  Additional @codes@
  1163. of sorts.  The four codes are:  @USER@, @SEC@, @TIME@, and @DATE@  Each is
  1164. replaced by something.  @User@ is replaced by the user's handle.  @Sec@ is
  1165. replaced by the name of the user's security class.  The @Time@ and @Date@
  1166. are replaced by the current time and date when the logging is being done.
  1167. For example:
  1168.  
  1169. 'T' AddLog "@USER@ is entering Teleconference at @TIME@ on @DATE@."
  1170.  
  1171.   What about some gadgets?  Well, throughout the menu control files, you
  1172. have 10 variables available to you.  All 10 of them are "integers" (meaning
  1173. that they are numbers).  The most common use for them is probably adding
  1174. "randomization" to your system.  With a little help from them, you can make
  1175. your BBS take a different course of action at random.  This is best used
  1176. to automatically change your displays regularly.  Some users get easily 
  1177. bored of the same screens over and over.  Take the prelog for instance, 
  1178. they will see it every time they call your system.  What if you could have 
  1179. 10 different prelogs instead of just 1?  This is first done by "picking a
  1180. number from 1 to 10."  The RANDOM command:
  1181.  
  1182. 'k' RANDOM Code[x] xxxx
  1183.  
  1184.   The Code[x] just says which variable to place the random number in, where
  1185. the x is from 0 to 9, such as Code[2] or Code[7].  The variables in control 
  1186. files are named "Codes".  The xxxx is how high of a number LightSpeed can
  1187. pick (from 0 to xxxx).  One of the IF statements we ignored earlier is 
  1188. used to find out what is in the Code[].  The IF statement has 3 forms:
  1189.  
  1190. 'z' IF Code[x] ON
  1191. 'z' IF Code[x] OFF
  1192. 'z' IF Code[x] comparison xxxx
  1193.  
  1194.   On and Off aren't very important right now.  Comparison works just like
  1195. in most other IF statements.  An example using RANDOM and IF Code[x]:
  1196.  
  1197. Random Code[1] 10
  1198. If Code[1] >= 4
  1199.   Show "Prelog1.xxx"
  1200. Else
  1201.   If Code[1] < 2
  1202.     Show "Prelog2.xxx"
  1203.   Else
  1204.     Show "Prelog3.xxx"
  1205.   Endif
  1206. Endif
  1207.  
  1208.   The above is a little more complicated than usual.  First, it gets the
  1209. random number and places in it in Code #1.  Then, we check "if the 
  1210. random number was greater than or equal to 4", which has a 50% percent
  1211. chance of happening (The number could be anywhere from zero to 9, because
  1212. we told random "limit of 10".)  If it WAS higher than or equal to 4, we
  1213. display Prelog1.Rip, .Ans, or .Asc and are done.  If it WASN'T, then we 
  1214. proceed to the ELSE part.  The first thing we do now is check "if the random 
  1215. number was less than 2", which has about a 30% percent chance of happening.
  1216. If it WAS less than 2, we display Prelog2.Rip, .Ans, or .Asc and are done, 
  1217. if it WASN'T, we do what the ELSE says instead, in which case we display
  1218. Prelog3.Rip, .Ans, or .Asc and are done with.  
  1219.  
  1220.   You can also give Code[]s a value yourself, as well as flags and submenus:
  1221.  
  1222. 'z' SET Code[x] xxxx
  1223. 'z' SET Flag[x] xxxx
  1224. 'z' SET Submenu[x] xxxx
  1225.  
  1226.   The above just fills code[x] with the value xxxx, just like a random
  1227. command except that the value is ALWAYS xxxx, or it fills the Flag[x] or
  1228. Submenu[x] with that value.  There is also one almost "secret" feature here
  1229. which may become useful at times.
  1230.  
  1231. 'z' SET Flag[%x] xxxx
  1232.  
  1233.   The above adds a bit of randomization to the flags.  The x after the %
  1234. should be replaced by a number from 0-9, and indicates the highest flag
  1235. that can be "picked".  When the command is used, the %x will be replaced by
  1236. a random number between 0 and the x.  For example, Flag[%3] could end up
  1237. as Flag[0], Flag[1], Flag[2], or Flag[3].
  1238.  
  1239.   Then there's a few commands you may need for keeping things nice looking:
  1240.  
  1241. 'z' ENTER
  1242. 'z' PRESS
  1243.  
  1244.   ENTER just shows a prompt and waits for the user to press Enter/Return.
  1245.   PRESS just shows a prompt and waits for the user to press any thing (The
  1246. only problem with this is, although easier for the user, line noise can
  1247. also pass for a key they've pressed.)  
  1248.  
  1249.   If you ever get tired of the General Configuration you've made in LSConfig,
  1250. you can switch to another one in mid-operation by this command:
  1251.  
  1252. 'z' CONFIG "filename"
  1253.  
  1254.   You'd have to use the MS-Dos COPY command to get a second General
  1255. Configuration made in a different file.  The default filename is "Config.Dat"
  1256.  
  1257.   The PRINT and DISPLAY commands just send short messages to the screen
  1258. and user.  The DISPLAY command shows a line and then a line-feed (Moves
  1259. down the next line on the screen), where the PRINT command shows ONLY what
  1260. you've told it to (You can use PRINT 3 or 4 times on the same line of the
  1261. screen, but DISPLAY only once.)  
  1262.  
  1263. 'z' DISPLAY "your text here"
  1264. 'z' PRINT "more text here "
  1265. 'z' PRINT "this would be written on the same line" 
  1266.  
  1267.   The above would show up as:
  1268.  
  1269. your text here
  1270. more text here this would be written on the same line
  1271.  
  1272.   The LOGIN command is normally used only once in your START.CON file.  It  
  1273. is the point at which LightSpeed prompts the user for their handle and
  1274. password.  It is perfectly safe to perform most operations BEFORE the LOGIN
  1275. command, however you should use a little caution, and keep in mind that
  1276. a user who has not given their name and password only has about 5 minutes
  1277. to do so before being disconnected.  
  1278.   There are multiple uses for moving the LOGIN command around.  You could
  1279. "split" your system up into multiple BBSes if you wanted.  You might do so
  1280. by presenting a menu with 3 or 4 different BBSes listed, and each one take
  1281. another path.  Although it is also possible (and recommended) to "split"
  1282. your system up AFTER the user has logged on (The first thing they do,
  1283. perhaps?)  Normally, Start.Con has no matching menu screen (No Start.Rip,
  1284. Start.Ans, or Start.Asc) however you CAN create one if you like.
  1285.  
  1286.   The LOGOFF command works the opposite.  In LightSpeed, it disconnects the
  1287. user and waits for for more calls.  In a door using LightSpeed's menu control
  1288. files, it exits the door and returns to the BBS.  You may have difficulty
  1289. finding the LOGOFF command in the default menus.  That's because it is a
  1290. "global" command.  "Global" commands are ones which execute from any menu,
  1291. and are Global for the purpose of speeding up the system and not having to
  1292. repeat adding them to every single menu you have.  The globals are just like
  1293. all other menu control files, except A) Even if you erase all the global 
  1294. commands, the Globals.Con file must still exist in your LightSpeed \Menu
  1295. directory.  And B) A display file for globals will be ignored 
  1296. (Global.Rip, .Ans, or .Asc).  Finally C) Globals are executed BEFORE other 
  1297. menu commands.  
  1298.  
  1299.   The QUEST command is very simple.  It begins a questionare like you learned
  1300. about above.  Automatically, LightSpeed expects a new user questionare for
  1301. any "Open system".  This is usually the New.Qst file in your \Ls\Quest
  1302. directory, but you may have changed it with LSConfig.  The other normal
  1303. place for using a QUEST command is the registery menu, where a questionare
  1304. allows you to give the information for your "reg".   
  1305.  
  1306. 'z' QUEST "filename"
  1307.  
  1308.   Example:
  1309.  
  1310. 'F' Quest "Reg.Qst"
  1311.  
  1312.   The "questionare answer file" is always the same file with the extension
  1313. .Out attached (in this case, Reg.Out.)  Although LightSpeed only uses
  1314. questionares by default for new users and registeries, you can use
  1315. additional questionares if you choose, probably for the purpose of some
  1316. information gathering you may need.
  1317.  
  1318.   Although it is recommended you avoid using it if possible, there is a
  1319. command called BREAK.  The BREAK command stops reading that key at that
  1320. point (it COULD be used without a key but would serve no realistic purpose.)
  1321. For example:
  1322.  
  1323. 'P' Display "This line is fine"
  1324. 'P' Break
  1325. 'P' Display "This line can never be seen"
  1326.  
  1327.   Although that is also un-realistic, as the only real use for a BREAK is
  1328. in an IF statement.  
  1329.  
  1330. 'P' Display "Continue on?  (Y/N)  "
  1331. 'P' If Ask No
  1332.   'P' Break
  1333. 'P' Endif
  1334. 'P' Display "This line can only be seen if the user answered YES"
  1335. 'P' Display "As can this one"
  1336.  
  1337.   The above is something of a double-negative.  Whenever the BREAK command
  1338. is reached, it prevents reaching any further commands with that key.  
  1339.  
  1340.   The CLS command is extremely simple, and just clears the screen on both
  1341. the user side and your side.
  1342.  
  1343. 'z' CLS
  1344.  
  1345.   The REMENU command is also very simple for display purposes.  It redisplays
  1346. the menu just as if the user had pressed ENTER.
  1347.  
  1348.   Finally, the SUBMENU and EXIT commands allow a little more depth to the  
  1349. menuing system.  Normally, when you change menus, the previous menu is
  1350. totally forgotten.  However, when you use the SUBMENU command instead of the
  1351. MENU command, the menu you came from is remembered.  Its best used for
  1352. an information/bulletin menu or a sysop menu.  For instance, if I go from the
  1353. main menu to the information menu, I might want to be able to hit X to get
  1354. back to the MAIN MENU.  If I go to it from the file menu I might want to hit
  1355. X to get back to the FILE MENU.  Although it is only possible to remember
  1356. a single menu level before an error occurs.  That is where EXIT comes in.
  1357. The EXIT command simply returns you to the menu from whence you came.
  1358.  
  1359.   [Inside Main.Con]
  1360. 'I' SUBMENU "Info.Con"
  1361.   [Inside Info.Con]
  1362. 'X' EXIT
  1363.  
  1364.   When you hit I from the Main menu, you would be transferred to the Info
  1365. menu.  When you pressed X from the Info menu, you would return to whatever
  1366. menu you were at before.  
  1367.  
  1368.   One possibility left to cover:  What if you try this?
  1369.  
  1370. 'J' If Ask Yes
  1371. 'O' LogOff
  1372. Status "Doing Something"
  1373.   'J' Door "Joke.Bat"
  1374. 'J' Endif
  1375.  
  1376.   The above is a bit confusing.  It will be very rare to see such a mess,
  1377. however it IS alright.  If the user hits J, the above will perform the 
  1378. IF ASK YES command, then set the status to "Doing Something", and finally
  1379. the DOOR "Joke.Bat" command (if they answered yes).  If the user hits O, the 
  1380. above will logoff and end there.  If the user pressed any other key and
  1381. passes through the above, the status will ALWAYS be set to "Doing Something".
  1382. Now, what if we do the opposite?
  1383.  
  1384. If Code[4] On
  1385.   'J' Status "Doing Something"
  1386.   'O' LogOff
  1387.   'J' Door "Joke.Bat"
  1388. Endif
  1389.  
  1390.   The above will work just fine, and might actually have a use somewhere.
  1391. The above will allow the 'J' and 'O' commands (at least the ones above)
  1392. ONLY if code[4] is ON.  The 'J' and 'O' commands above will be disabled if
  1393. code[4] is OFF.
  1394.  
  1395.   The last 2 commands in the menu control files are better explained a little
  1396. later.  They are the UPLOAD and DOWNLOAD commands, which will be explained
  1397. in detail in the section "File Transfers".  Also, more information on the
  1398. INTERNAL command is coming up.  For a quick refrence to all the menu control
  1399. commands, see the appendixes.  
  1400.  
  1401.                        [Part 2 - The Mail System...]
  1402.   
  1403.   LightSpeed's mail system is the most sophisticated in existance today.
  1404. BBS Mail systems have been becoming a thing of the past very quickly.  As
  1405. baud rates jump from 300 baud to lightning speeds of 28,800 in 2 years or
  1406. so, the BBSers from awhile back who found the mail base are now finding 
  1407. twice as many newer BBSers who are interested more in the latest files.  And 
  1408. sysops can only follow the crowd.
  1409.  
  1410.   LightSpeed attempts to bring back part of the dieing message system.  It
  1411. introduces 3 new methods that make it easier than ever for user's to use 
  1412. your message base.  It provides mechanisms to make user->user communication
  1413. simple and effective.
  1414.  
  1415.   [2.1 - What's so special...]
  1416.  
  1417.   The first key to LightSpeed's powerful mail system is "Automatic 
  1418. Clean-Up".  Automatic Clean-Up simply searches through the message base
  1419. once every night and tosses any messages that have "gathered too much dust".
  1420. Automatic Clean-Up is extremely easy to use.  The settings for it are
  1421. controlled through LSConfig's Master Configuration.  It will be explained
  1422. in-depth in a moment.
  1423.  
  1424.   The next method for LightSpeed's flexible mail system is extended division
  1425. of the messages.  Previously, there were commonly two types of messages:
  1426. Private (or personal e-mail) and public.  Private were simply messages sent
  1427. from one person to another and read by no-one else.  Public were messages
  1428. that were either written to ALL intending to catch someone's eye or when
  1429. a person was asked if they wanted the message public so that anyone 
  1430. interested could review it freely.  
  1431.  
  1432.   LightSpeed brings forth a new type of message, the "Post".  Now, public
  1433. messages are those which are between one person and another, but are marked
  1434. as open to all who are interested.  Posts, on the other hand, are messages
  1435. intended to be seen by as many people as possible.  
  1436.  
  1437.   Before I can completely explain Posts, I must introduce another powerful
  1438. feature.  The "conversation" is a type of message not directed to ALL, but
  1439. written to more than one target.  Users can create conversations simply by
  1440. listing more than one person's handle seperated by commas in the "To:" field 
  1441. of their messages.  For example:
  1442.  
  1443.   To [Enter=Abort]: Terror, Alien, Infinity
  1444.  
  1445.   There are also two types of conversations, public and private.  Private  
  1446. conversations are treated just like private messages, except that all the
  1447. people listed will receive the message and have the chance to reply instead
  1448. of just the one person.  If they do reply, they become the "From" person and 
  1449. everyone else involved in the conversation is written "To".  
  1450.  
  1451.   A public conversation brings forth yet another opportunety.  Anyone not
  1452. involved in the conversation who happens to glance at it can join in the
  1453. conversation.  And any replies of the future will involve them.  The more
  1454. they have to say the quicker they will become a full part of the 
  1455. conversation, or they can reply just once and slowly become involved.
  1456.  
  1457.   Now, the strict definitions:
  1458.  
  1459.   Post:     A message written to ALL or a conversation in public
  1460.   Public:   A message written to a single individual, marked as public
  1461.   Private:  Any message marked as private
  1462.  
  1463.   There is also a feature of LightSpeed called Broadcasts.  These are simply
  1464. messages sent to "All Users" which users will receive as if it was a Private
  1465. message to them (Although it says it is written to All Users and is Broadcast
  1466. in the message header.)
  1467.  
  1468.   Remember:  Sysops have the right, by-law, and are expected to, read
  1469. private e-mail even when it isn't directed to them.  It is against the law
  1470. for sysops to NOT monitor the private communications on any open public BBS.
  1471.  
  1472.   [2.2 - Simple tricks...]
  1473.  
  1474.   If you don't like the idea of 3 kinds of messages, you are free to combine
  1475. posts and publics.  Also, you can select which ones will be automatically
  1476. scanned for as "new mail" when a user logs on, if any.  Any that aren't 
  1477. automatically scanned for must be selected from a mail menu to be seen.  To 
  1478. combine posts and publics, simply attach both to the same key on the menus.  
  1479. The menu commands you should know are:
  1480.  
  1481. 'z' IF NEW PRIVATE/PERSONAL[S]/PUBLIC[S]/POST[S]
  1482.  
  1483.   That was explained before, except now you know what the differences are.
  1484. Private and personal are the same thing.
  1485.  
  1486. 'z' INTERNAL 3 0 ["To"]                            ; Write Message
  1487. 'z' INTERNAL 3 1 Private/Personal/Public/Post      ; Search for new mail
  1488. 'z' INTERNAL 3 2                                   ; Search through mail
  1489. 'z' INTERNAL 3 100                                 ; Write Broadcast
  1490.  
  1491.   The 3-2 command is best as an option such as [S]earch mail from your
  1492. mail menu.  It is also the best way for a sysop to access private messages
  1493. (any message which would be otherwise hidden is shown in a darker blue).
  1494.  
  1495.   The 3-1 command is best used both at logon and as an option from your
  1496. mail menu.  It is greatly recommended that you AT LEAST scan for new
  1497. PERSONAL mail at logon.  That would be:
  1498.  
  1499.   [In Start.Con]
  1500. Internal 3 1 Personal
  1501.  
  1502.   You may want to ask a user if they wish to read their new mail first.
  1503. That can be done like so:
  1504.  
  1505.   [In Start.Con]
  1506. Display "Searching for new mail..."
  1507. If New Personal
  1508.   Display "You have new mail, do you wish to read it now?  (Y/N)"
  1509.   If Ask Yes
  1510.     Internal 3 1 Personal
  1511.   Endif
  1512. Endif
  1513.  
  1514.   The 3-0 command is best used as an option from your mail menu only.  It
  1515. also provides one of the most convenient features of LightSpeed:
  1516.  
  1517.   By specifying the optional "To" part of the 3-0 command, you can setup
  1518. menu options to write to any user on your system.  The basic example is the
  1519. comment to sysop command usually from your main menu:
  1520.  
  1521. 'z' Internal 3 0 "Terror"
  1522.  
  1523.   (Assuming your handle is Terror, grin)  However there is no law that states
  1524. that the target user must be a sysop.  ANY user on your system can have a
  1525. command like that, which is an excellent feature for any information
  1526. service.  One thing you might check:  The target user must have access to
  1527. the first mail area the user who writes the message has access to, or it
  1528. will be impossible to receive it.  For example, if Terror has access to
  1529. mail area 3 but a user can write him who has access to mail area 1, then
  1530. the message will be in a mail area Terror can't get to.  You could also
  1531. specify multiple users, or ALL for the "To" user.
  1532.  
  1533.   Of course, if you leave the 3-0 command with no "To" user, it turns into
  1534. the "Write Message" command and asks for the necissary information.   
  1535.  
  1536.   Finally, the 3-100 command has no options, and only asks the mail area for
  1537. the message to be placed in.  It is best placed in a sysop menu, or have its
  1538. access limited to selected users.  A option in LSCONFIG-Master configuration
  1539. controls the maximum age of a Broadcast message before deleting.
  1540.  
  1541.   [2.3 - The details...]
  1542.  
  1543.   The message system is a tight part of LightSpeed, and takes very little
  1544. configuration from the sysop.  With that tightness, all the commands you
  1545. can use are already built-in to LightSpeed.  In detail, they are:
  1546.  
  1547.         Commands from ESC command-bar during message writing...
  1548.   [S]end              ...Saves and sends the message
  1549.   [A]bort             ...Cancels the message and exits the mail editor
  1550.   [C]ontinue          ...Resumes message editting
  1551.   a[T]tach Credits    ...Attaches credits to the message to be picked up by 
  1552.                                      the message recepient when they choose
  1553.   [U]pload            ...Uploads and attaches a file at the current position
  1554.   
  1555.         During message editting...
  1556.   [Ctrl-R]      ..Redraw message         [ESC]         ..Editor Commands
  1557.   [Ctrl-Y]      ..Erase current line     [Ctrl-K]      ..Block Commands
  1558.  
  1559.         During message viewing...
  1560.   [E]dit              ...Allows you to modify your message
  1561.   [R]eply             ...Reply to a message
  1562.   [*] Repeat          ...Redisplays the message 
  1563.   [1] Normal          ...Leaves the sysop commands
  1564.   [2] Sysop           ...Shows first part of the sysop commands
  1565.   [3] Sysop           ...Shows second part of the sysop commands
  1566.   [C]opy              ...Copies the message to another receipient
  1567.   [F]oward            ...Fowards the message to another receipient
  1568.   e[X]it              ...Ends the message viewing
  1569.   [D]ownload          ...Downloads files if any are attached
  1570.   [-] Back            ...Goes back to previous message
  1571.   [Enter] Next        ...Moves on to the next message
  1572.   [T]o                ...[Sysop]...Changes who the message is "To"
  1573.   [F]rom              ...[Sysop]...Changes who the message author is
  1574.   [S]ubject           ...[Sysop]...Changes what the message's subject is
  1575.   [D]elete            ...[Sysop]...Destroys the message
  1576.   [P]rivacy           ...[Sysop]...Toggles between public and private
  1577.  
  1578.   The LSConfig Master Configuration allows you to change how many days     
  1579. pass before a message is automatically deleted for its age.  Leaving any
  1580. of the numbers blank or 0 in the Master Configuration will disable deletion
  1581. of that type of message.  Public and Post messages are actually not 
  1582. considered "read" until they have replies.  The recommended settings for
  1583. the Master Configuration are:
  1584.  
  1585.   Private Un-Read: [30]                     Private Read:  [ 7]
  1586.   Public Un-Read:  [40]                     Public Read:   [25]
  1587.   Posts Un-Read:   [45]                     Posts Read:    [20]
  1588.  
  1589.   In addition to setting these values, you must run UPGRADE.EXE every night
  1590. to perform the actual sweeping.  Although you can do this manually when you
  1591. wish, you should set up an event to do this nightly, see: System Events.
  1592.  
  1593.  
  1594.  
  1595.                        [Part 3 - The file system...]
  1596.  
  1597.   In today's BBSing community, a BBS's file system is by far the most looked
  1598. at and used part of the system.  History has shown that only a BBS's file 
  1599. system can attract callers from across the nation to your system.  But you
  1600. don't need a million files to get started, just the ability to upload and
  1601. download and a few files can keep users' interest.  And that ability is well 
  1602. kept in LightSpeed.
  1603.  
  1604.   [Note: Actual uploads and downloads are disabled in the Trial Edition]
  1605.  
  1606.   Listing files...
  1607.  
  1608.   Uploading is the process to adding new files to the BBS system, by user's
  1609. transmitting the files from their computers to yours.  LightSpeed handles
  1610. uploads in a unique way to simplify and minimize the sysop's work.  
  1611. LightSpeed can list its files in 3 ways.  The first is the BBS's file 
  1612. listings, which users can access.  That can be accessed simply by the
  1613. internal menu command 2-0...
  1614.  
  1615. 'L' Internal 2 0
  1616.   
  1617.   You can also specify a "menu set" to list.  This is ALL sets by default.
  1618. This menu set is a number specified like so:
  1619.  
  1620. 'L' Internal 2 0 3
  1621.  
  1622.   Using menu set 0 indicates ALL sets as well.  All file areas have a number
  1623. selecting their menu set, a file area in set 0 is global to ALL menu sets.
  1624. With this you can specify where the menu set will be used in your menuing
  1625. system.  You can have up to 255 menu sets.  By placing a 3 after the Internal
  1626. 2-0 command, you specify to list all file areas that include menu set 3.
  1627. (Each file area may be a part of up to 5 different menu sets.)  
  1628. If you have more than one file area to be listed, the user is allowed to
  1629. choose between them before the files are actually listed.  Otherwise, the
  1630. only choice available is automatically picked.
  1631.  
  1632.   Uploading Files...
  1633.  
  1634. 'U' Upload [MenuSet] [FileArea] [FileName]
  1635.  
  1636.   The above command allows the user to upload files to your BBS system.
  1637. If it is plain ('U' Upload) then it lets the user pick between ALL menu
  1638. sets (with LightSpeed, the user first selects a file area to place the
  1639. upload in.)  If you specify a number for MenuSet, the user may only pick
  1640. file areas in that menu set (if there is only one file area it is 
  1641. automatically used).  If you specify a number for FileArea, the user is
  1642. not asked what file area they wish to upload to and the area stated is
  1643. used instead.  If you specify a FileArea, the value for MenuSet is ignored,
  1644. however it must still be specified so that FileArea is always the second
  1645. field.  Example:
  1646.  
  1647. 'U' Upload 0 4
  1648.  
  1649.   The above would select file area 4, regardless of the menu sets file area
  1650. 4 is a member of.  If you specify a FileName, then whatever is uploaded will
  1651. be renamed to that filename.  WildCards are acceptable for this entry.  
  1652. If you specify a FileName, you must also specify a MenuSet and FileArea,
  1653. however the MenuSet will again be ignored.
  1654.  
  1655.   Downloading Files...
  1656.  
  1657. 'D' Download [FileName]
  1658.  
  1659.   The above command brings the user to the Download control menu.  From there
  1660. they can manage the files they have marked/tagged, select to download them,
  1661. and other activities.  If you specify a FileName, then the user will skip
  1662. the Download control menu and begin a download of FileName only (WildCards
  1663. are okey for this field.)  You should specify the path as well as the actual
  1664. file name.  Example:
  1665.  
  1666. 'D' Download C:\Files\Doom.Zip
  1667.  
  1668.   Searching for files...
  1669.  
  1670.   In this early version of LightSpeed, searching for files is not yet
  1671. possible.  However, you may want to add this command to your menus 
  1672. somewhere, as this feature will become available with the next version of 
  1673. LightSpeed.
  1674.  
  1675. 'S' Internal 2 4 [MenuSet]
  1676.  
  1677.   This command opens the File Search menu.  The user can select certain
  1678. file areas to search through.  If a number for MenuSet is specified, the 
  1679. user can only select the file areas in that MenuSet (it is recommended that
  1680. you NOT specify a MenuSet for search commands.)  
  1681.  
  1682.   Adding file transfers protocols...
  1683.  
  1684.   [This feature is normally only needed by experienced and advanced sysops]
  1685.  
  1686.   LightSpeed can allow additional file transfer protocols than those built-in
  1687. to the system by default.  There are three steps to this process.  First,
  1688. modify the (regular text) file Proto.Txt in your LightSpeed directory.
  1689. Instructions for modifying it are provided on the first 7 lines.
  1690. Second, modify your Proto.Rip, .Ans, and .Asc files in your Disp\ directory.
  1691. Third, modify the FTP.BAT file in your LightSpeed directory to handle the
  1692. new protocol.  If the transfer is successful, create a file named 
  1693. Ls_XFer.Ok in your LightSpeed directory.  FTP.BAT is called with the 
  1694. following information:
  1695.  
  1696.   %1  the keyword Upload or Download
  1697.   %2  the lowercase form of the letter in Proto.Txt for this protocol
  1698.   %3  the filename to transfer
  1699.  
  1700.   Rules of transfer...
  1701.  
  1702.   LightSpeed applies the following limits to all file transfers:
  1703.  
  1704.   1...  The user may not download after running out of credits.  The credit
  1705.     consumption rate remains in effect during downloads as specified by the
  1706.     menuing system.
  1707.   2...  The user may not download after running out of time for the current 
  1708.     call, or for the day.  
  1709.   3...  The user may not download if they have passed their upload:download
  1710.     ratio.
  1711.   4...  The user may not download if they have passed their upload:download
  1712.     K bytes ratio.
  1713.   5...  The user may not download if they have passed their daily files or
  1714.     K bytes limit (as set by their security class).
  1715.   6...  The user may not upload after running out of credits, you should
  1716.     set your menuing system to set the credit consumption rate to 0 during
  1717.     the transfer, and back to normal after the transfer to encourage uploads.
  1718.   7...  The user may upload after their time has run out, however if they
  1719.     pass their time limits they will be disconnected immidiately after the
  1720.     transfer.  There is not yet any upload-time/compensation feature in LS.
  1721.  
  1722.   Managing upload traffic...
  1723.  
  1724.     LightSpeed handles uploads to your BBS unlike other systems.  There are
  1725.   2 ways for sysops to view files on their BBS.  The first is the menu 
  1726.   command 2-100.  
  1727.  
  1728. 'F' Internal 2 100
  1729.  
  1730.     You can also "screen" the files to view, and view only new uploads to 
  1731.   your system.  A file is marked as a new upload when it is uploaded and
  1732.   left that way until a sysop changes it.  If a user changes it, it becomes
  1733.   an "approved" file.  Non-sysop users may not access any files which have
  1734.   not yet been approved.  
  1735.  
  1736. 'N' Internal 2 101
  1737.  
  1738.     The above is the command to view all new uploads to the system.  Sysops
  1739.   will also see "new uploads" when they are viewing the regular file 
  1740.   listings, however the new uploads will be shown in a blue color different
  1741.   from the other files.  
  1742.  
  1743.     To add masses of files to your BBS, the best way is to use the LightSpeed
  1744.   companion program LsFile.Exe, provided with LightSpeed.  LsFile has no
  1745.   documentation yet, however is simple to use.  The file_id.diz and 
  1746.   desc.sdi file searches are disabled for now (bugs) and ignored by LsFile.
  1747.   All files added with LsFile are "approved" unless the sysop does not
  1748.   enter a description for them.
  1749.  
  1750.     You can also add files already present in your file directories by
  1751.   performing a local upload.  (No upload actually occurs, just go through
  1752.   the process of uploading)  All files present in the directory of the file
  1753.   area you upload to that AREN'T already in the file database will be shown
  1754.   for you to enter descriptions to. 
  1755.  
  1756.                        [Part 4 - Installing Doors...]
  1757.  
  1758.   All doors included with LightSpeed follow a pattern for being setup.  
  1759. Samples are included to make setting up the LightSpeed doors as simple as
  1760. possible.  If you are new to operating a BBS, then reviewing how the batch
  1761. files work might provide valuable insight in setting up other doors (ones
  1762. not included with LightSpeed, mostly created by 3rd parties.)  If you don't
  1763. know what a Door.Sys or InfoLink.Dat is, refer to the glossary of terms.
  1764.  
  1765.   [4.1 - LightSpeed Companions]
  1766.  
  1767.   WARNING:
  1768.   If you are going to use LsVerify at this time, be aware it is severly 
  1769. undertested at this time.  Also, LsChat and LsPlanets are somewhat untested.
  1770. LsVote & LsChat are in excellent condition.
  1771.   At this point, there is no, or extremely limited (and out-dated), 
  1772. documentation on LsChat, LsWall, LsVerify, LsVote, and LsPlanets 
  1773. companions.  Batch files are included to help you figure them out. 
  1774.  
  1775.   LsChat, LsWall, LsVerify, LsVote, and LsPlanets are all included with
  1776. LightSpeed (with the exception of the Trial edition).  Care has been taken
  1777. to make setting doors up with LightSpeed as easy as possible.  The Ls-series
  1778. of doors all follow the same basic procedure for setting up:
  1779.  
  1780.   [Step 1]: Create a directory to store the companion door in.  It is
  1781. highly recommended that you first create a directory on your hard disk
  1782. named \Doors (Preferably from your root, and not a subdirectory of the
  1783. LightSpeed directory.)  Then, for each door you create, add a subdirectory
  1784. to hold it, for example, make a directory named C:\Doors\LsVote.
  1785.  
  1786.   [Step 2]: You will find the files for the doors in a zipfile in your
  1787. LightSpeed directory, if LightSpeed is setup correctly.  To unzip the files
  1788. into the directory you have created for them, use this command:
  1789.  
  1790.  (Make sure you are in your LightSpeed directory and PkUnzip is in your path)
  1791.   PkUnzip LsVote.Zip C:\Doors\LsVote
  1792.  
  1793.   Replace C:\Doors\LsVote with the name of the directory you created, and
  1794. replace LsVote.Zip wth the zipfile holding the door you are setting up.
  1795. They are: LsVote.Zip, LsChat.Zip, LsWall.Zip, LsVerify.Zip, and Planets.Zip.
  1796.  
  1797.   [Step 3]: You must now create a batch file to run the door from your BBS.
  1798. Several example batch files are included in your LightSpeed directory as
  1799. examples, and you may already have your door setup.  If not, your batch file
  1800. will look something like this:
  1801.  
  1802.   C:
  1803.   Cd\Doors\LsChat
  1804.   LsChat.Exe I%InfoLink%
  1805.   Exit
  1806.  
  1807.   Replace the C: with whatever drive you placed the door's files on, if
  1808. needed.  Also change the name of the directory to the one you placed the
  1809. door's files in, if needed.  For doors other than LsChat, change LsChat.Exe
  1810. to the executable file (The same as the name of the program except LsPlanets
  1811. where the name of the executable file is Plan.Exe).  
  1812.   If you are installing LsVote.Exe, you will need to make one additional
  1813. change.  Add a line after the one calling LsVote.Exe and before the Exit
  1814. which reads like this:
  1815.  
  1816.   LsVote.Exe I%InfoLink% +
  1817.  
  1818.   LsVote has two modes built-in, controlled by the plus symbol.  If no plus
  1819. is specified, LsVote only allows users to vote on topics.  If a plus is
  1820. specified, the users will NOT vote on topics but instead will be allowed to
  1821. view the results and create new topics (depending on your LsVote setup.) 
  1822.   You do NOT have to place the line without the plus here if you don't want.
  1823. You can place it anywhere, sometimes you may wish to place the line without
  1824. the plus in your Login.Bat file (which is normally called after a user logs
  1825. in instead of a menu), and place the line with the plus as a door from one
  1826. of your menus.  
  1827.  
  1828.   [Step 4]: If you have not already done so, you must add a line in your
  1829. menus somewhere that includes a DOOR command for your batch file.  For
  1830. LsVote, this line might read as follows under your main menu:
  1831.  
  1832.   'V' Door "\Ls\LsVote.Bat"
  1833.  
  1834.   That is, if the batch file is named LsVote.Bat and in the directory \Ls.
  1835.   You might also need to modify your menu displays to show the new door as
  1836. an option.
  1837.   Note:  LsWall is normally called by Login.Bat, which is tied to the
  1838. menu Start.Con.
  1839.  
  1840.   [4.2 - Other doors]
  1841.  
  1842.   In addition, most LightSpeed-style doors (those that use the InfoLink.Dat 
  1843. drop file) will follow these formats for their command line, depending on 
  1844. the dropfile supported by the individual door:
  1845.  
  1846.   LsGeneric.Exe I%InfoLink%
  1847.   LsGeneric.Exe D%DoorSys%
  1848.   LsGeneric.Exe LOCAL
  1849.  
  1850.   One of the above should appear above in a batch file that calls the
  1851. doors.  IMPORTANT:  Make sure the last line in your batch file is like this:
  1852.  
  1853.   Exit
  1854.  
  1855.   No other information should be present on that line, and it terminates the
  1856. batch file and returns control to LightSpeed.  
  1857.   The following % codes can be used in your batch files to represent
  1858. different information:
  1859.  
  1860.   %Node%       ..Replaced with the number of the current node, Example:  3
  1861.   %BaudRate%   ..Replaced with the baud rate of the current caller, Ex: 19200
  1862. * %DoorSys%    ..Replaced with the drive, path, and filename of the
  1863.                  Door.Sys file, Ex: C:\Ls\Node3\Door.Sys
  1864. * %InfoLink%   ..Replaced with the drive, path, and filename of the
  1865.                  InfoLink.Dat file, Ex: C:\Ls\Node2\InfoLink.Dat
  1866. + %Code0%      ..Replaced with the current value of Code[0]
  1867.     ...  
  1868. + %Code5%      ..Replaced with the current value of Code[5]
  1869.   
  1870.   + The %CodeX% values can only be used if the keyword CODE or CODES is
  1871.    present in your menu's DOOR command, see Part 1.4 - Modifying the menu
  1872.    system under the DOOR command for more information.
  1873.   * If the Quick, InfoLink, or DoorSys keywords are present in your menu's
  1874.    DOOR command, only one or neither of the dropfiles (Door.Sys and 
  1875.    InfoLink.Dat) will be created and available for that door.  For more
  1876.    information, see Part 1.4 - Modifying the menu system under the DOOR
  1877.    command.
  1878.  
  1879.   Additional % codes can be made available by adding this line to your Batch
  1880. file prior to refrencing the % codes:
  1881.  
  1882. Call Port%Node%.Bat
  1883.  
  1884.   After the above command is executed, the following % codes are added, -IF-
  1885. the PortX.Bat file is setup properly (See also Part 1 - Getting Started
  1886. under Step 7 for more information.)
  1887.  
  1888.   %ComPort%    ..Replaced with the current comport, Ex: 2
  1889.   %ComId%      ..Replaced with the current fossil port (if applicable), Ex: 1
  1890.   %Irq%        ..Replaced with the current port's IRQ setting, Ex: 3
  1891.   %Base%       ..Replaced with the current port's hex base address, Ex: 3E8
  1892.  
  1893.   To use any % code, just type in the % code's name (i.e. %ComPort%) and
  1894. when the batch file is running it will automatically be replaced by the
  1895. correct value.  
  1896.  
  1897.                      [Part 5 - Keys & Local Commands...]
  1898.  
  1899.   There are a few commands you should know throughout operating LightSpeed:
  1900.  
  1901.   When no user is logged on, you can press Alt-L to logon "locally".  You can
  1902. press Alt-S to logon "locally" under the sysop's alias.  You can press Alt-X
  1903. to exit LightSpeed to DOS or the calling batch file.
  1904.  
  1905.   Any sysop user may press Alt-S (this may require "doorway mode" on some
  1906. terminals, and may be impossible on others) to shortcut to the sysop's 
  1907. user database, the listing of all user accounts on the system.  The user can
  1908. press Alt-S or X to exit the user database and return to what they were
  1909. doing before.
  1910.  
  1911.   Local keys:
  1912.  
  1913.     [F1]  Decrease the size of the status bar...
  1914.     [F2]  Increase the size of the status bar... (Up to 4 lines)
  1915.     [F3]  Turn sound off/on (You cannot HEAR sysop page without sound)
  1916.     [F4]  Turn page off/on  (Users can page even without sound)
  1917.     [F7]  Decrease user's time remaining by 5 minutes...
  1918.     [F8]  Increase user's time remaining by 5 minutes...
  1919.     [Ctrl-F7/F8]  Decrease/Increase user's time remaining by 15 minutes...
  1920.     [Alt-F7/F8]   Decrease/Increase user's time remaining by 1 minute...
  1921.     [F9]  Online upgrade (Change security class or user's credits)...
  1922.     [F10] Enter/Exit sysop chat (use to answer a sysop page)...
  1923.     [Alt-H]  Hangs up the current user.  Works on local logons as well.
  1924.  
  1925.     Note: Alt-H also works when the node is "Waiting for Carrier [##]"...
  1926.  
  1927.                        [Part 6 - Glossary of Terms...]
  1928.  
  1929.   BBS - (Bulletin Board System) A computer system which answers telephones
  1930. using modems and allows various services with users.  LightSpeed is 
  1931. considered "BBS Software" as it serves as the software portion of a BBS.
  1932.  
  1933.   Carrier - The sound made by the modem, allowing the data transfer.  Also:
  1934. If carrier is "lost" or "dropped" it means the connection between the two
  1935. modems has been lost.  A carrier is always present in normal modem 
  1936. communication as long as the modem is communicating with another modem.
  1937.  
  1938.   CoSysOp - (Co-System Operator) A person who assists in operating a BBS
  1939. system.  With LightSpeed, these people normally have "Sysop" security
  1940. clearance.  Only a "Master" security user may assign "Sysop" security
  1941. clearance to others.
  1942.  
  1943.   Door - A program, often sold seperatly or distributed freely, that can be
  1944. operated through the BBS without modifying the BBS Software.  Most often,
  1945. door programs are games which users can play.  The users "invoke" the door
  1946. by selecting it from the BBS system's menus, which causes the BBS to "swap
  1947. out" (wait in the background) and load the door program.  [This feature is
  1948. not available in the trial edition of LightSpeed]
  1949.  
  1950.   Door.Sys - The most common form of DROPFILE (See below).  In LightSpeed,
  1951. and many other applications, refers to the 52-line version of the Door.Sys
  1952. standard.  The shorter version is NOT supported by LightSpeed.
  1953.  
  1954.   Download - Transfer of a file from a BBS system using a file transfer
  1955. protocol such as Z-Modem.  On a BBS, downloading is normally selecting a
  1956. file from the BBS system's listings and receiving it.  Users usually select
  1957. files from a BBS system and download them when they need a file, because BBS
  1958. systems have a much greater variety of files than ordinary computers (the
  1959. reason is the flow of files in and out of the BBS from large numbers of
  1960. people, and the BBS often having more storage/hard disk space than other
  1961. computers.) 
  1962.  
  1963.   Dropfile - A data or text file created by BBS Software to provide
  1964. information to door programs.  Usually, dropfiles are very small and take
  1965. little hard disk space.  They are also removed after the door has finished
  1966. executing.  LightSpeed supports 2 types of dropfiles, Door.Sys and 
  1967. InfoLink.Dat.  The Door.Sys drop file is sometimes considered a standard
  1968. among BBS systems and doors and is supported by almost all door programs.
  1969.  
  1970.   E-Mail - (Electronic Mail) On LightSpeed, this is known also as a
  1971. "personal message".  EMail often refers to messages transmitted to and
  1972. from the internet, however can also be considered messages on a single BBS.
  1973. For example:  A user might write EMail to the sysop asking him a question,
  1974. and the sysop might respond with more EMail back to the user.  
  1975.  
  1976.   File Transfer Protocol - The communications protocol used to transfer a
  1977. file from one computer to another, or to and from a BBS.  The most common
  1978. FTP is "Z-Modem" or "Z-Modem MobyTurbo" which is reliable and fast.  
  1979.  
  1980.   InfoLink.Dat - A DROPFILE (See above) unique to LightSpeed.  The 
  1981. InfoLink.Dat file is not supported by doors except those written specifically
  1982. for LightSpeed.  All the LightSpeed companion doors (LsChat, LsVote, etc)
  1983. require the InfoLink.Dat dropfile and do not support the Door.Sys dropfile.
  1984.  
  1985.   Internet - A web of interconnected networks around the world.  The internet
  1986. is connected through BBS systems, networks, government agencies, schools,
  1987. etc.  Support for LightSpeed connections to the internet are planned but
  1988. not yet available.
  1989.  
  1990.   Login or Logon - The process of connecting to a BBS and identifying a user,
  1991. can also refer to the events between entering identification and when the
  1992. main menu is displayed.
  1993.  
  1994.   Modem - (Modulator/Demodulator) Common computer peripherial which can make
  1995. and receive ordinary phone calls with other modems and establish a data
  1996. communication between two computers.  
  1997.  
  1998.   Node - A phone line, with a single modem answering calls and allowing
  1999. access to a BBS system.  Also called a "line" refering to the phone line
  2000. required.
  2001.  
  2002.   SysOp - (System Operator) The person or persons operating a BBS system.
  2003. In almost all cases, the person who owns the BBS system's computer and the
  2004. one who purchases the BBS software such as LightSpeed.  In LightSpeed, this
  2005. person normally is the only one to have "Master" security clearance.
  2006.  
  2007.   Upload - Transfer of a file to a BBS system using a file transfer protocol
  2008. such as Z-Modem.  (A common misconception is that when a user is "receiving"
  2009. a file from a BBS it is considered to be a upload to the user, but correctly
  2010. is a download from the BBS.)
  2011.  
  2012.                         [Part 7 - Troubleshooting...]
  2013.  
  2014.   Q. When I start up LightSpeed it says "-=Please wait=-" in the corner  
  2015.     and then "-=Retry #xx=-" and finally says "Error: Cannot open file ???"
  2016.   A. LightSpeed is unable to access one of its disk files, check that Ms-Dos
  2017.     SHARE is loaded and FILES=[at least 30].  See Part 1 - Getting Started:
  2018.     Step 2 for more information.
  2019.  
  2020.   Q. What does the LaserLink section of LsConfig do?
  2021.   A. It is probably innoperational at this time, so you are best to avoid
  2022.     using it.  See also: Appendix A - Known bugs, and Introduction: Future
  2023.     Plans.  
  2024.  
  2025.   Q. LightSpeed has to retry initializing the modem multiple times, and
  2026.     sometimes fails.  Am I doing something wrong?
  2027.   A. No, it is normal for LightSpeed to retry the modem init, until it
  2028.     passes Retry #6 at which time LightSpeed will abort to DOS.  This can
  2029.     happen on a few rare occasions, you may need to modify your batch file
  2030.     to handle it, such as rebooting, or reloading the LightSpeed after it
  2031.     aborts.  See also Appendix A - Known bugs.
  2032.  
  2033.   Q. Once an hour LightSpeed seems to initialize the modem again.  What 
  2034.     gives?
  2035.   A. LightSpeed resets the modem once an hour to make sure that the serial
  2036.     port has not crashed.  It is a simple safety precaution to prevent the
  2037.     system from loosing the ability to answer the phone.  If the serial port
  2038.     has crashed, LightSpeed will not be able to initialize it again and will
  2039.     return to DOS or its calling batch file.  See also Appendix A - Known 
  2040.     bugs.
  2041.  
  2042.                     [Part 8 - Pricing and upgrade policy...]
  2043.  
  2044.   Notice:  These prices are subject to change at any time without any
  2045. prior notice.  These are the current prices of LightSpeed at this time.
  2046.  
  2047.     Edition                     Nodes      Current Price           
  2048.  
  2049.     Trial Edition               1          Shareware (Free)
  2050.     Single Line                 1        $ 40
  2051.     Dual Line                   2          100
  2052.     Cobra Edition               6          300
  2053.     MultiLine Edition           20         800
  2054.     Support available up to 999 nodes, call for pricing...
  2055.  
  2056.   All systems support a free local node for the sysop's personal use.
  2057.  
  2058.   [8.1 - Upgrades...]
  2059.  
  2060.     Our upgrade policy is divided into 2 catagories.  MINOR updates are
  2061.   those which fix bugs and add minor improvements, while MAJOR updates are
  2062.   ones which add important new features or require a new manual (see section
  2063.   8.3, What you're buying.)  An example of a minor update might be from
  2064.   version 1.0 to version 1.1 or 1.2.  An example of a major update might
  2065.   be from version 1.1 or 1.2 to version 2.0.
  2066.  
  2067.     Any purchase of LightSpeed (including edition changes) entitles you to
  2068.   6-month membership in our minor updates plan.  You will receive an update
  2069.   via mail as long as you are a member of this plan.  This plan covers 
  2070.   minor updates for free, which will be sent to you automatically when
  2071.   they are available.  We will NOT necissarily send all or any updates.
  2072.   To conserve charges and time, we will only send updates when enough
  2073.   changes have occured in LightSpeed that we consider it necissary.  We
  2074.   will also send you automatic notification of major updates as they become
  2075.   available.  After the 6-months expire, you may purchase an additional year
  2076.   of automatic MINOR upgrades for $15.  Note: We will not send notification
  2077.   when your plan expires.
  2078.     
  2079.     Major upgrades include a $15 charge. Major upgrades may include 
  2080.   additional charges if the price of your version of LightSpeed increases.  
  2081.   For example, if you have purchased the Dual Line version for $100, and the 
  2082.   price increases to $110 between version 1.2 and version 2.0, then 
  2083.   purchasing a major upgrade for your version 1.2 will cost $15 for the 
  2084.   upgrade plus the difference of $10 in the price, for a total cost of $25
  2085.   for the upgrade.
  2086.  
  2087.     Upgrading between Editions will cost the difference plus $5.  For 
  2088.   example, if you purchase the Single Line Edition for $40 and your BBS
  2089.   grows so that you need the Dual Line Edition for $100, you can buy it
  2090.   for $65.
  2091.  
  2092.     In addition, there is a third kind of update which is normally not 
  2093.   available.  This is called the RELEASE update.  This is signified by the
  2094.   word Release followed by a number after the program's version number, or
  2095.   by a third decimal point in the version number, if it is mentioned at
  2096.   all.  Release updates are very minor and are the workings between one
  2097.   minor update and another.  You shouldn't worry about release updates,
  2098.   they are very tiny improvements in the program which will be distributed
  2099.   as part of the next minor or major update.
  2100.  
  2101.   [8.2 - Contacting us...]
  2102.  
  2103.   For information... 
  2104.   For the most current prices...
  2105.   For technical support...
  2106.   Or to place an order...
  2107.  
  2108.   By Internet EMail:
  2109.     Send e-mail to the lead-programmer and sales manager for LightSpeed at:
  2110.     WileyBlack@msn.com
  2111.  
  2112.   By BBS:
  2113.     Call  (505) 865-0116  or  (505) 865-7789  by modem.
  2114.     Login as GUEST with the password LS for quickest access..
  2115.  
  2116.     [Remember, we cannot accept credit cards, so you must send a check or
  2117.      money order by USMail anyway before we can ship your program.]
  2118.  
  2119.   By USMail:
  2120.     See REGISTER.FRM for information.
  2121.  
  2122.     We can accept checks addressed to "Carol Black", money orders are also
  2123.   fine, however we regret we cannot accept credit cards at this time.  
  2124.  
  2125.   [8.3 - What you're buying...]
  2126.  
  2127.   Any purchase of LightSpeed includes LightSpeed BBS Host itself, as well
  2128. as companion programs to maintain the system.  It also includes LsChat,
  2129. LsVote, LsWall, LsVerify, the Planets Interface, and LsVerify companion
  2130. doors free of charge (A $120 value!)  See the Introduction of this document
  2131. for details.
  2132.  
  2133.   Any LightSpeed purchase includes the LightSpeed BBS Host, doors, and
  2134. membership in our upgrades plan (see section 8.1, Upgrades.)  It currently
  2135. does NOT include a printed manual.  We are working on supplying manuals
  2136. in the future, but have limited resources for it.
  2137.  
  2138.   Technical support will be offered via the modem numbers given above,
  2139. at our descresion.  By-request we will offer voice phone support.  This
  2140. technical support is not a warranty, and is not garunteed, however, we
  2141. will try the best we can to keep your system running.  
  2142.  
  2143.                         [Appendix A - Known bugs...]
  2144.  
  2145.     Known bugs in the LightSpeed system to-date:
  2146.  
  2147.     -  2400 Baud:  Many 2400 baud modems have problems with LightSpeed.
  2148.      There is no known solution for this at this time, but we're working
  2149.      on it.  You might try messing with your modem's CTS/RTS settings.  If
  2150.      you have any luck, tell us about it.
  2151.     -  System Events:  Only the "Call nearest time" system event works.
  2152.      LightSpeed ignores the setting for this in LSConfig at this time.
  2153.     -  LaserLink:  LightSpeed supports the LaserLink system already, however 
  2154.      this system will not function correctly.  For an explanation of
  2155.      LaserLink, see future plans, above.
  2156.     -  Slightly slow menus:  Unless you are going to be running multiple
  2157.      nodes or on a slow computer (less than 33mhz) this shouldn't even be
  2158.      noticable. 
  2159.     -  Teleconference is a bit slow.  We're working on re-writting it without
  2160.      using any disk-access at this time, which will significantly improve
  2161.      the speed and power.
  2162.     -  Incomplete documentation:  These documentation which you are currently
  2163.      reading only include a quick explanation of the system, later they will
  2164.      be lengthened and more information added.  
  2165.  
  2166.                             [Appendix B - Why?]
  2167.  
  2168.   Q. Why did we create LightSpeed systems?
  2169.   A. We want to open new doors to expand on BBS Systems.  We believe much
  2170.     can be done to improve BBS Systems, and are going to try our best to
  2171.     invent some of them.  However, doing this takes a lot of resources,
  2172.     which we don't have.  That's why we need user's support to fund our
  2173.     work, and give us a chance to build on and improve LightSpeed.  
  2174.  
  2175.       
  2176.                                [Credits]
  2177.  
  2178.   Wiley Black is currently a student at Los Lunas High School, age 15.  He
  2179. has been programming in C and recently C++ for 5 years now, and been
  2180. involved in multiple projects.  He is also an employee and minor
  2181. owner of RidgeLine Engineering.  After nearly 13 months on the project, 
  2182. he is the lead programmer for LightSpeed BBS Software, and has writen most
  2183. of the code alone.  Wiley also handles the sales and pricing of the system.
  2184. Wiley is known as Terror throughout New Mexico BBSes and his own system.
  2185.   Joel Yancey is a student at Valley High School located in Corrales, NM.
  2186. He is a pascal programmer currently learning C and C++ techniques.  His
  2187. knowledge of modems, BBS systems, and internet operations has greatly
  2188. benefited the project.  Joel is known as Python, Kurt Kobain, and R0k on
  2189. New Mexico BBSes and has experience as a sysop himself.  
  2190.   Steven Fisher is a student at La Cueva High School, and is an experienced
  2191. C and C++ programmer.  He has excellent knowledge of many aspects of BBS
  2192. systems, internet systems, and non-DOS-systems which has helped the system.
  2193. Steve is known as Lithium and Eagle on New Mexico systems.
  2194.   
  2195.   Special thanks to...
  2196.  
  2197.   Malek Annabi (King Burgundy)...For bein' an inspiration for all who know U
  2198.   Joe Bajin & Paul Stephans...For bein' a bum who wants my software, and
  2199.     for coming to my parties and haf'n a blast.
  2200.   Dave Doster (Cybersled)...For bein' a friend for no reason...
  2201.   Rebecca Haskins...For keeping my skewl-life interesting.. farewell...
  2202.   Dan Lopez (Rev.Pslock Macro)...For bein' a pal when no-one else would...
  2203.     ...don't enjoy my ex too much man!
  2204.   Paul Kennerly (Depeche Mode)...For bein' a cosysop bum...  but helpful!
  2205.   Matt Landis (Weird)...For countless deathmatches ended in insanity...
  2206.   Michele Mauro...For being coo' and putting up with my internet mail...
  2207.   Becky Malerie (sp?)...For bein' a friend with some style...
  2208.   Jason Owsley...For having all kindsa wierd ideas and daring to share them..
  2209.   Mike Williams (Little M)...For daring to enjoy my GTs...
  2210.   ID Software...For giving me a hobby
  2211.   Westwood Studios...For creating some massively cool entertainment
  2212.     And finally...
  2213.   Olivia Villescas...For giving me someone to love ;} <kisses>
  2214.   And an old friend who went by the handle NataS...Off in CA somewhere...
  2215.   Thanks for getting me off on the right foot, bro.  Your idea to have GTs 
  2216.   worked!  Enjoy yourself, dude!
  2217.  
  2218.                                [Legal Notice]
  2219.  
  2220.     The following applies in full to LsChat, LsVote, LsVerify, LsPlanets,
  2221.   and LsWall, as well as all companion programs and documentation comprised
  2222.   of LightSpeed BBS Host software.
  2223.  
  2224.     THIS PRODUCT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.
  2225.   THE ENTIRE RISK AS TO THE RESULTS AND PERFORMANCE OF THE PROGRAM
  2226.   IS ASSUMED BY YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU (AND
  2227.   NOT RIDGELINE ENGINEERING, ITS DEALERS, OR EMPLOYEES) ASSUME THE 
  2228.   ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 
  2229.   FURTHER, RIDGELINE ENGINEERING DOES NOT WARRANT, GUARANTEE, OR MAKE
  2230.   REPRESENTATIONS REGARDING THE USE OF, OR THE RESULTS OF THE USE
  2231.   OF THIS PROGRAM IN TERMS OF CORRECTNESS, ACCURACY, RELIABILITY,
  2232.   CURRENTNESS, OR OTHERWISE; AND YOU RELY ON THE PROGRAM AND IT'S
  2233.   RESULTS SOLELY AT YOUR OWN RISK. RIDGELINE ENGINEERING CANNOT
  2234.   ACCEPT RESPONSIBILITY FOR SYSTEM DAMAGE, LOSS OF PROFIT, OR ANY
  2235.   OTHER SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGE RESULTING FROM
  2236.   THE USE OR INABILITY TO USE THIS PRODUCT.
  2237.  
  2238.     LightSpeed BBS Host system's EXE files, and DOC files may not be modified 
  2239.   in any way.  To do so is a voilation of law.  Distribution of modified
  2240.   files is further voilation of law.  This includes all editions and versions
  2241.   of LightSpeed and its companions.
  2242.  
  2243.     RidgeLine Eng., DOES warrant to the original licensee of
  2244.   a REGISTERED product that the program disk(s) on which the
  2245.   program is recorded be free from defects in materials and
  2246.   workmanship under normal use and service for a period of ninety
  2247.   (90) days from the date of delivery as evidenced by a copy of
  2248.   your receipt. RidgeLine Eng.'s entire liability and your
  2249.   exclusive remedy shall be replacement of the disk not meeting
  2250.   RidgeLine Eng.'s limited warranty.
  2251.  
  2252.     We reserve the right to refuse service, sales, or information to 
  2253.   anyone we choose, for any reason.  
  2254.  
  2255.   COPYRIGHT
  2256.  
  2257.     LightSpeed BBS Host software and this document are Copyright
  2258.   (C)1995 RidgeLine Eng. All rights reserved. 
  2259.  
  2260.     Any specific hardware/software names used in this document are
  2261.   trademarks of specific manufacturers.
  2262.  
  2263.     Regardless of the method of marketing, LightSpeed BBS Host 
  2264.   software is not in the public domain. It is copyrighted by 
  2265.   RidgeLine Engineering. All rights are reserved. Copying, 
  2266.   duplicating, selling or otherwise distributing this product 
  2267.   is a violation of the law. However, we grant you the right, 
  2268.   in fact encourage you to make and distribute as many copies 
  2269.   of the shareware Trial edition as you wish, using any 
  2270.   acceptable medium of exchange, with the following provisions:
  2271.  
  2272.     You may distribute this Trial Edition as often as you like,
  2273.   to any sources you choose.  Do not distribute LightSpeed without 
  2274.   all of its files, addendum files, documentation and this notice
  2275.   in their original form.  Please obtain our written permission prior 
  2276.   to distribution with any "Bundled" software packages.  (I am willing
  2277.   to allow bundled sales in most cases, just contact me.)  Do not alter the 
  2278.   program or documentation in any manner.  Please do not accept payment for 
  2279.   the program to exceed $10, unless it is being distributed on a "Shareware 
  2280.   Cd-Rom".  LightSpeed Trial Edition is licensed for individual personal 
  2281.   use and evaluation for an unlimited time.  Use and evaluation by 
  2282.   businesses, corporations or individuals in a commercial venture is 
  2283.   limited to 90 days, after which time a REGISTERED edition of LightSpeed
  2284.   must be purchased or the use of LightSpeed Trial Edition must be 
  2285.   discontinued.
  2286.  
  2287.     Distribution of any REGISTERED edition of LightSpeed BBS Host is in
  2288.   violation of license agreements and international copyright laws!
  2289.  
  2290.   SOURCE CODE
  2291.  
  2292.     This product uses the SPAWNO routines by Ralf Brown for extremely fast
  2293.   and effecient shelling to DOS for door and event handling.  These are
  2294.   extremely good routines and I encourage all programmers to make use of
  2295.   them!  LightSpeed also makes use of the MCOMM5 serial library, which is
  2296.   the best we've ever seen.  Finally, LightSpeed makes use of the LsTree
  2297.   B-Tree Indexing module written by our team.  
  2298.  
  2299.     The actual source code to LightSpeed is not, and will not, be available
  2300.   under any circumstances.  We are working on distributing a door-kit free
  2301.   or for under $25 with LightSpeed named LsDoor.  This door-kit provides
  2302.   all the foundation that programmers will need to create their own doors
  2303.   and utilities to work with LightSpeed (or any BBS Software.  The door-kit
  2304.   automatically detects LightSpeed and enables the LightSpeed door extensions
  2305.   such as paging-via-door.)  
  2306.     While the actual door kit will sell for $25 or under, there will be an
  2307.   additional $25 cost in purchasing the MCOMM5 serial library (which cannot
  2308.   be purchased through us at this time, but we will give you the place to 
  2309.   call and the form to send.)  
  2310.     Examples of the power of the LsDoor library include all the companion
  2311.   doors included with LightSpeed, such as LsChat and LsVote.  Try paging a
  2312.   user from chat, or paging a user IN chat and you'll get the idea.  
  2313.  
  2314.     LightSpeed has been in the works since Summer of 1994.  It has been
  2315.   rewritten about 4 to 5 times in that time (our first BBS designed totally
  2316.   failed and we had to start over around fall of 1994.)  The LsTree Indexing
  2317.   module was partially completed in summer of '94 and revised and finished
  2318.   in spring of '95.  
  2319.  
  2320.